{ "openapi": "3.0.0", "info": { "title": "Checkout API", "description": ">\u2139\uFE0F Check the new [Checkout onboarding guide](https:\/\/developers.vtex.com\/vtex-rest-api\/docs\/checkout-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about the Checkout and is organized by focusing on the developer's journey.\r\n\r\nThe Checkout API allows you to obtain and configure information about the shopping cart and its attachments, personalization of custom fields, orderForm structure, fulfillment data, order management, and identification of the sellers delivery region.\r\n\r\n>\u2139\uFE0F Data modification operations (`POST`, `PATCH`, `PUT` or `DELETE` endpoints) shall not be performed in parallel in the Checkout APIs. They need to be enqueued by the client\/requester. Otherwise, old values \u200B\u200Bcan be overwritten incorrectly or competition errors may occur.\r\n\r\n>\u26A0\uFE0F All endpoints that consult or edit the orderForm can change the authentication depending on the customer context. If you are handling information from a customer with a complete profile on the store, authentication will be required. You can only access or modify the customer data for these profiles with an authenticated request.\r\n\r\n## Shopping cart\r\n\r\nAllows merchants to simulate, configure and customize shopping cart information.\r\n\r\n- [POST - Cart Simulation](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/orderForms\/simulation): simulate a cart in VTEX Checkout.\r\n- [GET - Get current or create a new cart](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#get-\/api\/checkout\/pub\/orderForm): get your current shopping cart information or to create a new cart.\r\n- [GET - Get cart information by ID](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#get-\/api\/checkout\/pub\/orderForm\/-orderFormId-): get all information associated to a given shopping cart.\r\n- [POST - Add cart items](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/items): add a new item to the shopping cart.\r\n- [POST - Update cart items](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/items\/update): change the quantity of one or more items in a specific cart or remove an item from the cart.\r\n- [PATCH - Handle cart items](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#patch-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/items): change the quantity or price of one or more items to the shopping cart or add a new item to the shopping cart.\r\n- [POST - Remove all items](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/items\/removeAll): removes all items from a given cart, leaving it empty.\r\n- [PUT - Change price](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#put-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/items\/-itemIndex-\/price): changes the price of an SKU in a cart.\r\n- [GET - Cart installments](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#get-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/installments): retrieves possible amount of installments and respective values for a given cart with a given payment method.\r\n\r\n## Cart attachments\r\n\r\nAllows merchants to obtain client profiles and add information to a given shopping cart.\r\n\r\n- [GET - Get client profile by email](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#get-\/api\/checkout\/pub\/profiles): retrieve a client's profile information by providing an email address.\r\n- [POST - Add client profile](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/attachments\/clientProfileData): include client profile information to a given shopping cart.\r\n- [Patch - Ignore profile data](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#patch-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/profile): disable the automatic inclusion of profile information in a shopping cart when a shopper provides an email address at checkout.\r\n- [GET - Remove all personal data](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#get-\/checkout\/changeToAnonymousUser\/-orderFormId-): removes all user information, making a cart anonymous while leaving the items.\r\n- [POST - Add client preferences](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#patch-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/items): include client preferences information to a given shopping cart.\r\n- [POST - Add shipping address and select delivery option](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/attachments\/shippingData): include shipping information and\/or selected delivery option to a given shopping cart.\r\n- [POST - Add marketing data](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/attachments\/marketingData): include marketing information to a given shopping cart.\r\n- [POST - Add payment data](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/attachments\/paymentData): include payment information to a given shopping cart.\r\n- [POST - Add merchant context data](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/attachments\/merchantContextData): add to the cart any relevant information that is related to the context of a specific order.\r\n- [POST - Add coupons to the cart](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/coupons): add coupons to a given shopping cart.\r\n\r\n## Custom data\r\n\r\nAllows merchants to manage custom fields that were created by an app in their account.\r\n\r\n- [PUT - Set multiple custom field values](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/coupons): allows you to update the values of custom fields created in your account's apps.\r\n- [PUT - Set single custom field value](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#put-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/customData\/-appId-\/-appFieldName-): allows you to update the value of a specific custom field created in your account's apps.\r\n- [DELETE - Remove single custom field value](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#delete-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/customData\/-appId-\/-appFieldName-): allows you to remove the value of a specific custom field created in your account's apps.\r\n\r\n## Configuration\r\n\r\nAllows merchants to configure orderForm in the account and seller exchange on a given order.\r\n\r\n- [GET - Get orderForm configuration](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#get-\/api\/checkout\/pvt\/configuration\/orderForm): retrieves the settings that are currently applied to every [`orderForm`](https:\/\/developers.vtex.com\/docs\/guides\/orderform-fields) in the account.\r\n- [POST - Update orderForm configuration](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pvt\/configuration\/orderForm): determines settings that will apply to every [`orderForm`](https:\/\/developers.vtex.com\/docs\/guides\/orderform-fields) in the account.\r\n- [GET - Get window to change seller](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#get-\/api\/checkout\/pvt\/configuration\/window-to-change-seller): retrieves a marketplace\u2019s window to change seller.\r\n- [POST - Update window to change seller](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pvt\/configuration\/window-to-change-seller): updates a marketplace\u2019s window to change seller.\r\n- [POST - Clear orderForm messages](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/messages\/clear): removes all messages from the `messages` field of the [`orderForm`](https:\/\/developers.vtex.com\/docs\/guides\/orderform-fields).\r\n\r\n## Fulfillment\r\n\r\nAllows merchants to obtain pickup points and address information.\r\n\r\n- [GET - List pickup points by location](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#get-\/api\/checkout\/pub\/pickup-points): retrieves information on pickup points close to a given location determined by geocoordinates or postal code.\r\n- [GET - Get address by postal code](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#get-\/api\/checkout\/pub\/postal-code\/-countryCode-\/-postalCode-): retrieves address information for a given postal code and country.\r\n\r\n## Order placement\r\n\r\nAllows merchants to place and process orders by creating a new cart or using an existing cart.\r\n\r\n- [POST - Place order from an existing cart](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/orderForm\/-orderFormId-\/transaction): places an order from an existing [`orderForm`](https:\/\/developers.vtex.com\/docs\/guides\/orderform-fields) object, meaning an existing cart.\r\n- [PUT - Place order](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#put-\/api\/checkout\/pub\/orders): places order without having any prior cart information.\r\n- [POST - Process order](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#post-\/api\/checkout\/pub\/gatewayCallback\/-orderGroup-): order processing callback request, which is made after an order's payment is approved.\r\n\r\n## Region\r\n\r\nAllows merchants to obtain a list of sellers serving a specific delivery region.\r\n\r\n- [GET - Get sellers by region or address](https:\/\/developers.vtex.com\/docs\/api-reference\/checkout-api#get-\/api\/checkout\/pub\/regions\/-regionId-)\": retrieves a list of sellers that cater to a specific region or address.\r\n\r\n## Common parameters in the documentation\r\n\r\n| Parameter name | Description |\r\n|---------------------------|-----------------------------------------------------------------------------------------|\r\n| `{{accountName}}` | Store account name |\r\n| `{{environment}}` | The environment that will be called. Change for vtexcommercestable or vtexcommmercebeta |\r\n| `{{X-VTEX-API-AppKey}}` | Located in the headers of the requests, user authentication key |\r\n| `{{X-VTEX-API-AppToken}}` | Located in the headers of the requests, authentication password |\r\n", "contact": {}, "version": "1.0" }, "servers": [ { "url": "https://{accountName}.{environment}.com.br", "description": "VTEX server URL.", "variables": { "accountName": { "description": "Name of the VTEX account. Used as part of the URL", "default": "apiexamples" }, "environment": { "description": "Environment to use. Used as part of the URL.", "enum": [ "vtexcommercestable" ], "default": "vtexcommercestable" } } } ], "paths": { "/api/checkout/pub/orderForms/simulation": { "post": { "tags": [ "Shopping cart" ], "summary": "Cart simulation", "description": "This endpoint is used to simulate a cart in VTEX Checkout.\r\n\r\nIt receives an SKU ID, the quantity of items in the cart and the seller ID.\r\n\r\nIt returns all information about the cart, such as the selling price of each item, pricing and promotion data, payment and logistics info.\r\n\r\nThis request is useful whenever you need to know the availability of fulfilling an order for a specific cart setting, since the API response will let you know the updated price, inventory and shipping data.\r\n\r\n>⚠️ The fields (`sku id`, `quantity`, `seller`, `country`, `postalCode` and `geoCoordinates`) are just examples of content that you can simulate in your cart. You can add more fields to the request as per your need. Access the [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) guide to check the available fields.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [authentication](https:\/\/developers.vtex.com\/docs\/guides\/authentication) or [permissions](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", "operationId": "CartSimulation", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "RnbBehavior", "in": "query", "description": "This parameter defines which promotions apply to the simulation. Use `0` for simulations at cart stage, which means all promotions apply. In case of window simulation use `1`, which indicates promotions that apply nominal discounts over the total purchase value shouldn't be considered on the simulation.\n\r\n\rNote that if this not sent, the parameter is `1`.", "required": false, "style": "form", "schema": { "type": "integer", "example": 0 } }, { "name": "sc", "in": "query", "description": "Trade Policy (Sales Channel) identification.", "required": false, "style": "form", "schema": { "type": "integer", "example": 1 } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "id", "quantity", "seller" ], "properties": { "items": { "type": "array", "description": "Array containing information about the SKUs inside the cart to be simulated.", "items": { "type": "object", "description": "SKU information.", "properties": { "id": { "type": "string", "description": "The SKU ID.", "example": "1" }, "quantity": { "type": "integer", "format": "int32", "description": "The quantity of items of this specific SKU in the cart to be simulated.", "example": 1 }, "seller": { "type": "string", "description": "The ID of the seller responsible for this SKU. This ID can be found in your VTEX Admin.", "example": "1" } } } }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address. This value must be sent along with the `postalCode` or `geoCoordinates` values.", "example": "BRA" }, "postalCode": { "type": "string", "description": "Postal code.", "example": "12345-000" }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "example": [ -47.924747467041016, -15.832582473754883 ], "items": { "description": "Geocoordinates.", "type": "number", "example": -47.924747467041016 } } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "description": "Information on each item in the cart.", "items": { "type": "object", "description": "Object containing information of the item.", "properties": { "id": { "type": "string", "description": "ID of the item." }, "requestIndex": { "type": "integer", "description": "Request index information." }, "quantity": { "type": "integer", "description": "The quantity of the item the cart." }, "seller": { "type": "string", "description": "The seller responsible for the SKU." }, "sellerChain": { "type": "array", "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", "items": { "type": "string", "description": "Seller." } }, "tax": { "type": "integer", "description": "Tax value in cents." }, "taxCode": { "type": "string", "description": "A unique identifier code assigned to a tax within the VTEX Admin." }, "priceValidUntil": { "type": "string", "description": "Price expiration date and time." }, "price": { "type": "integer", "description": "Price in cents." }, "listPrice": { "type": "integer", "description": "List price in cents." }, "rewardValue": { "type": "integer", "description": "Reward value in cents." }, "sellingPrice": { "type": "integer", "description": "Selling price in cents. Note that this field may be subject to rounding discrepancies. We recommend retrieving data from the `priceDefinition` data structure instead." }, "offerings": { "type": "array", "description": "Array containing offering information of SKU service. A service is an item that may come with a product, optionally and with cost. It is used to assign a value of an additional service itself to an SKU.", "items": { "type": "object", "description": "Service general information.", "properties": { "type": { "type": "string", "description": "Service type." }, "id": { "type": "string", "description": "Service type ID." }, "name": { "type": "string", "description": "Name of the service type." }, "allowGiftMessage": { "type": "boolean", "description": "Option to display the service type on the gift card." }, "attachmentOfferings": { "type": "array", "description": "List of attachments details.", "nullable": true, "items": { "description": "Attachment details.", "type": "object", "required": [ "name", "required", "schema" ], "properties": { "name": { "type": "string", "description": "Name of the attachment.", "nullable": true }, "required": { "type": "boolean", "description": "Defines if the attachment is required (`true`) or not (`false`).", "nullable": true }, "schema": { "type": "object", "description": "Custom values [created into attachment](https://help.vtex.com/en/tutorial/adding-an-attachment--7zHMUpuoQE4cAskqEUWScU).", "nullable": true } } } }, "price": { "type": "integer", "description": "Service type price." } } } }, "priceTags": { "type": "array", "description": "Array of price tags, each of which, modifies the price in some way, like discounts or rates that apply to the item in the context of the order.", "items": { "type": "object", "description": "Price tag information.", "properties": { "name": { "type": "string", "description": "Price tag name." }, "value": { "type": "integer", "description": "Price tag value." }, "rawValue": { "type": "integer", "description": "Price tag raw value." }, "isPercentual": { "type": "boolean", "description": "Indicates whether price tag value is applied through a percentage." }, "identifier": { "type": "string", "description": "Price tag identifier.", "nullable": true }, "owner": { "type": "string", "description": "Identification of the responsible for the price tag." } } } }, "measurementUnit": { "type": "string", "description": "Measurement unit." }, "unitMultiplier": { "type": "integer", "description": "Unit multiplier." }, "parentItemIndex": { "type": "integer", "description": "Parent item index.", "nullable": true }, "parentAssemblyBinding": { "type": "string", "description": "Parent assembly binding.", "nullable": true }, "availability": { "type": "string", "description": "Availability." }, "priceDefinition": { "type": "object", "description": "Price information for all units of a specific item.", "properties": { "calculatedSellingPrice": { "type": "integer", "description": "Item's calculated unitary selling price in cents." }, "total": { "type": "integer", "description": "Total value for all units of the item in cents." }, "sellingPrices": { "type": "array", "description": "Array of objects, each containing value (in cents) and quantity for the different rounding instances that can be combined to form the correctly rounded total.", "items": { "type": "object", "description": "Item value and rounding quantity.", "properties": { "value": { "type": "integer", "description": "Value in cents for that specific rounding." }, "quantity": { "type": "integer", "description": "Rounding quantity, meaning how many items are rounded to this value." } } } } } } } } }, "ratesAndBenefitsData": { "type": "object", "description": "Information on pricing and promotions that apply to the order.", "properties": { "rateAndBenefitsIdentifiers": { "type": "array", "description": "List with pricing and promotions identifiers.", "items": { "type": "string", "description": "Promotion identifier." } }, "teaser": { "type": "array", "description": "List with pricing and promotions teaser.", "items": { "type": "string", "description": "Promotion teaser." } } } }, "paymentData": { "type": "object", "description": "Payment data information.", "properties": { "installmentOptions": { "type": "array", "description": "List of Installment options.", "items": { "type": "object", "description": "Information about the installment option.", "properties": { "paymentSystem": { "type": "integer", "description": "Payment system identification." }, "bin": { "type": "string", "description": "Card bin.", "nullable": true }, "paymentName": { "type": "string", "description": "Payment name.", "nullable": true }, "paymentGroupName": { "type": "string", "description": "Payment group name.", "nullable": true }, "value": { "type": "integer", "description": "Total value assigned to this payment." }, "installments": { "type": "array", "description": "Installment information.", "items": { "type": "object", "description": "Installment information.", "properties": { "count": { "type": "integer", "description": "Count information." }, "hasInterestRate": { "type": "boolean", "description": "Indicates whether the payment has interest." }, "interestRate": { "type": "integer", "description": "Interest rate value." }, "value": { "type": "integer", "description": "Value of the order without the interest rate. The value is shown without separating cents." }, "total": { "type": "integer", "description": "Total value of the order without separating cents. For example, $24.99 is represented `2499`." }, "sellerMerchantInstallments": { "type": "array", "description": "Seller merchant installments information.", "items": { "type": "object", "description": "Installment information." } } } } } } } }, "paymentSystems": { "type": "array", "description": "Information on payment systems.", "items": { "type": "object", "description": "Payment system information.", "properties": { "id": { "type": "integer", "description": "Payment system ID." }, "name": { "type": "string", "description": "Payment system name." }, "groupName": { "type": "string", "description": "Payment group name." }, "validator": { "type": "object", "description": "Payment system validator.", "nullable": true }, "stringId": { "type": "string", "description": "String ID." }, "template": { "type": "string", "description": "Template." }, "requiresDocument": { "type": "boolean", "description": "Indicates whether a document is required." }, "displayDocument": { "type": "boolean", "description": "Indicates whether a document is shown." }, "isCustom": { "type": "boolean", "description": "Indicates whether it is custom." }, "description": { "type": "string", "description": "Description." }, "requiresAuthentication": { "type": "boolean", "description": "Indicates whether a authentication is required." }, "dueDate": { "type": "string", "description": "Payment due date." }, "availablePayments": { "type": "string", "description": "Availability of payment.", "nullable": true } } } }, "payments": { "type": "array", "description": "Array with information on each payment chosen by the shopper.", "items": { "type": "object", "description": "Payment information.", "properties": { "paymentSystem": { "type": "integer", "description": "Payment system ID." }, "paymentSystemName": { "type": "string", "description": "Payment system name." }, "group": { "type": "string", "description": "Payment system group." }, "installments": { "type": "integer", "description": "Selected number of installments." }, "installmentsInterestRate": { "type": "number", "description": "Installments' interest rate." }, "installmentsValue": { "type": "integer", "description": "Value of the installments." }, "value": { "type": "integer", "description": "Total value assigned to this payment." }, "referenceValue": { "type": "integer", "description": "Reference value used to calculate total order value with interest." }, "hasDefaultBillingAddress": { "type": "boolean", "description": "Indicates whether billing address for this payment is the default address." } } } }, "giftCards": { "type": "array", "description": "Gift card information, if it applies to the order.", "items": { "type": "string", "description": "Gift card." } }, "giftCardMessages": { "type": "array", "description": "Array of gift card messages.", "items": { "type": "string", "description": "Gift card message." } }, "availableAccounts": { "type": "array", "description": "Available accounts.", "items": { "type": "string", "description": "Available account." } }, "availableTokens": { "type": "array", "description": "Available tokens.", "items": { "type": "string", "description": "Available token." } }, "availableAssociations": { "type": "object", "description": "Available associations." } } }, "selectableGifts": { "type": "array", "description": "Array containing the data of the items selected as a gift.", "items": { "type": "string", "description": "Selected gift item." } }, "marketingData": { "type": "object", "description": "Object containing promotion data such as coupon tracking information and internal or external UTMs.", "nullable": true }, "postalCode": { "type": "string", "description": "Postal code.", "nullable": true }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "logisticsInfo": { "type": "array", "description": "Array with logistics information on each item of the `items` array in the `orderForm`.", "items": { "description": "Logistics information of a item.", "type": "object", "properties": { "itemIndex": { "type": "integer", "description": "Index of item in items array." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "selectedSla": { "type": "string", "description": "Selected SLA. For example, `\"normal\"` or `\"express\"`.", "nullable": true }, "selectedDeliveryChannel": { "type": "string", "description": "Delivery channel selected by the customer. For example, `\"delivery\"` or `\"pickup-in-point\"`.", "nullable": true }, "quantity": { "type": "integer", "description": "Quantity." }, "shipsTo": { "type": "array", "description": "List of countries that the item may be shipped to.", "items": { "type": "string", "description": "Country that the item may be shipped to." } }, "slas": { "type": "array", "description": "Information on available SLAs.", "items": { "description": "SLA information.", "type": "object", "properties": { "id": { "type": "string", "description": "SLA ID." }, "deliveryChannel": { "type": "string", "description": "Delivery channel." }, "name": { "type": "string", "description": "SLA name." }, "deliveryIds": { "type": "array", "description": "Information on each delivery ID.", "items": { "type": "object", "description": "Object with delivery infomation.", "properties": { "courierId": { "type": "string", "description": "Courier ID." }, "warehouseId": { "type": "string", "description": "Warehouse ID." }, "dockId": { "type": "string", "description": "Warehouse ID." }, "courierName": { "type": "string", "description": "Courier name." }, "quantity": { "type": "integer", "description": "Quantity." } } } }, "attachmentOfferings": { "type": "array", "description": "List of attachments details.", "nullable": true, "items": { "description": "Attachment details.", "type": "object", "required": [ "name", "required", "schema" ], "properties": { "name": { "type": "string", "description": "Name of the attachment.", "nullable": true }, "required": { "type": "boolean", "description": "Defines if the attachment is required (`true`) or not (`false`).", "nullable": true }, "schema": { "type": "object", "description": "Custom values [created into attachment](https://help.vtex.com/en/tutorial/adding-an-attachment--7zHMUpuoQE4cAskqEUWScU).", "nullable": true } } } }, "shippingEstimate": { "type": "string", "description": "Shipping estimate. For instance, \"three business days\" will be represented as `3bd`." }, "shippingEstimateDate": { "type": "string", "description": "When using the query parameter `individualShippingEstimates=true`, it will contain the estimated shipping date (e.g. `2023-09-09T11:29:00+00:00`), otherwise it will contain `null`.", "nullable": true }, "useIndividualShippingEstimates": { "type": "boolean", "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`." }, "lockTTL": { "type": "string", "description": "Estimate date of delivery.", "nullable": true }, "availableDeliveryWindows": { "type": "object", "description": "This object contains information about the delivery window available to the shopper.", "properties": { "startDateUtc": { "type": "string", "description": "Delivery window starting day and time in UTC." }, "endDateUtc": { "type": "string", "description": "Delivery window ending day and time in UTC." }, "price": { "type": "integer", "description": "Delivery window price." }, "lisPrice": { "type": "integer", "description": "Delivery window list price." }, "tax": { "type": "integer", "description": "Delivery window tax." } } }, "deliveryWindow": { "type": "object", "description": "In case of scheduled delivery, this object will contain information on the delivery window selected by the shopper.", "properties": { "startDateUtc": { "type": "string", "description": "Delivery window starting day and time in UTC." }, "endDateUtc": { "type": "string", "description": "Delivery window ending day and time in UTC." }, "price": { "type": "integer", "description": "Delivery window price." }, "lisPrice": { "type": "integer", "description": "Delivery window list price." }, "tax": { "type": "integer", "description": "Delivery window tax." } } }, "price": { "type": "integer", "description": "Price in cents." }, "listPrice": { "type": "integer", "description": "List price in cents." }, "tax": { "type": "integer", "description": "Tax in cents." }, "pickupStoreInfo": { "type": "object", "description": "Information on the pickup store.", "properties": { "isPickupStore": { "type": "boolean", "description": "Indicates whether it is the pickup store." }, "friendlyName": { "type": "string", "description": "Friendly name.", "nullable": true }, "address": { "type": "object", "description": "Address information.", "nullable": true }, "additionalInfo": { "type": "string", "description": "Additional information.", "nullable": true }, "dockId": { "type": "string", "description": "Corresponding dock ID.", "nullable": true } } }, "pickupPointId": { "type": "string", "description": "Pickup point ID.", "nullable": true }, "pickupDistance": { "type": "integer", "description": "Pickup point distance." }, "polygonName": { "type": "string", "description": "Polygon name.", "nullable": true }, "transitTime": { "type": "string", "description": "Transit time. For instance, \"three business days\" is represented as `3bd`." } } } }, "deliveryChannels": { "type": "array", "description": "List of available delivery channels.", "items": { "type": "object", "description": "Object containing delivery channel ID.", "properties": { "id": { "type": "string", "description": "Delivery channel ID." } } } }, "messages": { "type": "array", "description": "Array containing an object for each message generated by our servers while processing the request.", "items": { "type": "string", "description": "Message." } }, "purchaseConditions": { "type": "object", "description": "Purchase conditions information.", "properties": { "itemPurchaseConditions": { "type": "array", "description": "List of objects containing purchase condition information on each item in the order.", "items": { "type": "object", "description": "Purchase condition information.", "properties": { "id": { "type": "string", "description": "Item ID." }, "seller": { "type": "string", "description": "Seller." }, "sellerChain": { "type": "array", "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", "items": { "type": "string", "description": "Seller ID." } }, "slas": { "type": "array", "description": "Information on available SLAs.", "items": { "type": "object", "description": "SLA information.", "properties": { "id": { "type": "string", "description": "SLA ID." }, "deliveryChannel": { "type": "string", "description": "Delivery channel." }, "name": { "type": "string", "description": "SLA name." }, "deliveryIds": { "type": "array", "description": "Information on each delivery ID.", "items": { "type": "object", "description": "Object with delivery inforamtion.", "properties": { "courierId": { "type": "string", "description": "Courier ID." }, "warehouseId": { "type": "string", "description": "Warehouse ID." }, "dockId": { "type": "string", "description": "Warehouse ID." }, "courierName": { "type": "string", "description": "Courier name." }, "quantity": { "type": "integer", "description": "Quantity." } } } }, "attachmentOfferings": { "type": "array", "description": "List of attachments details.", "nullable": true, "items": { "description": "Attachment details.", "type": "object", "required": [ "name", "required", "schema" ], "properties": { "name": { "type": "string", "description": "Name of the attachment. Ex. `vtex.subscription.weekly`.", "nullable": true }, "required": { "type": "boolean", "description": "Defines if the attachment is required (`true`) or not (`false`).", "nullable": true }, "schema": { "type": "object", "description": "Custom values [created into attachment](https://help.vtex.com/en/tutorial/adding-an-attachment--7zHMUpuoQE4cAskqEUWScU).", "nullable": true } } } }, "shippingEstimate": { "type": "string", "description": "Shipping estimate. For instance, \"three business days\" will be represented as `3bd`." }, "shippingEstimateDate": { "type": "string", "description": "When using the query parameter `individualShippingEstimates=true`, it will contain the estimated shipping date (e.g. `2023-09-09T11:29:00+00:00`), otherwise it will contain `null`.", "nullable": true }, "useIndividualShippingEstimates": { "type": "boolean", "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`." }, "lockTTL": { "type": "string", "description": "Estimate date of delivery.", "nullable": true }, "availableDeliveryWindows": { "type": "object", "description": "This object contains information about the delivery window available to the shopper.", "properties": { "startDateUtc": { "type": "string", "description": "Delivery window starting day and time in UTC." }, "endDateUtc": { "type": "string", "description": "Delivery window ending day and time in UTC." }, "price": { "type": "integer", "description": "Delivery window price." }, "lisPrice": { "type": "integer", "description": "Delivery window list price." }, "tax": { "type": "integer", "description": "Delivery window tax." } } }, "deliveryWindow": { "type": "object", "description": "In case of scheduled delivery, this object will contain information on the delivery window selected by the shopper.", "properties": { "startDateUtc": { "type": "string", "description": "Delivery window starting day and time in UTC." }, "endDateUtc": { "type": "string", "description": "Delivery window ending day and time in UTC." }, "price": { "type": "integer", "description": "Delivery window price." }, "lisPrice": { "type": "integer", "description": "Delivery window list price." }, "tax": { "type": "integer", "description": "Delivery window tax." } } }, "price": { "type": "integer", "description": "Price in cents." }, "listPrice": { "type": "integer", "description": "List price in cents." }, "tax": { "type": "integer", "description": "Tax in cents." }, "pickupStoreInfo": { "type": "object", "description": "Information on the pickup store.", "properties": { "isPickupStore": { "type": "boolean", "description": "Indicates whether it is the pickup store." }, "friendlyName": { "type": "string", "description": "Friendly name.", "nullable": true }, "address": { "type": "object", "description": "Address information.", "nullable": true }, "additionalInfo": { "type": "string", "description": "Additional information.", "nullable": true }, "dockId": { "type": "string", "description": "Corresponding dock ID.", "nullable": true } } }, "pickupPointId": { "type": "string", "description": "Pickup point ID.", "nullable": true }, "pickupDistance": { "type": "integer", "description": "Pickup point distance." }, "polygonName": { "type": "string", "description": "Polygon name.", "nullable": true }, "transitTime": { "type": "string", "description": "Transit time. For instance, \"three business days\" is represented as `3bd`." } } } }, "price": { "type": "integer", "description": "Price in cents." }, "listPrice": { "type": "integer", "description": "List price in cents." } } } } } }, "pickupPoints": { "type": "array", "description": "Array containing pickup points information.", "items": { "type": "string", "description": "Pickup points." } }, "subscriptionData": { "type": "object", "description": "Subscription information.", "nullable": true }, "totals": { "type": "array", "description": "Information on order totals.", "items": { "type": "object", "description": "Order information.", "properties": { "id": { "type": "string", "description": "Total ID." }, "name": { "type": "string", "description": "Total name." }, "value": { "type": "integer", "description": "Total value." } } } }, "itemMetadata": { "type": "object", "description": "Item metadata.", "properties": { "items": { "type": "array", "description": "List of objects containing metadata on each item in the order.", "items": { "type": "object", "description": "Object containing item metadata.", "properties": { "id": { "type": "string", "description": "Item ID." }, "seller": { "type": "string", "description": "Seller." }, "assemblyOptions": { "type": "array", "description": "Assembly options information.", "items": { "type": "string", "description": "Assembly option.", "properties": { "id": { "type": "string", "description": "Item ID." }, "name": { "type": "string", "description": "Item name." }, "required": { "type": "boolean", "description": "Indicates whether the item is required." }, "inputValues": { "type": "object", "description": "Input values information." }, "composition": { "type": "string", "description": "Composition information.", "nullable": true } } } } } } } } } } } } } }, "example": { "items": [ { "id": "1", "requestIndex": 0, "quantity": 1, "seller": "1", "sellerChain": [ "1" ], "tax": 0, "taxCode": "54WC8ZN6K8", "priceValidUntil": "2023-07-12T11:49:01Z", "price": 9999, "listPrice": 9999, "rewardValue": 0, "sellingPrice": 2999700, "offerings": [ { "type": "removal of additional old appliance", "id": "1", "name": "removal of additional old appliance", "allowGiftMessage": false, "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "price": 2999 } ], "priceTags": [ { "name": "DISCOUNT@MANUALPRICE", "value": -5000, "rawValue": -50.0, "isPercentual": false, "identifier": "1234abc-5678b-1234c" } ], "measurementUnit": "un", "unitMultiplier": 300.0000, "parentItemIndex": null, "parentAssemblyBinding": null, "availability": "available", "priceDefinition": { "calculatedSellingPrice": 2999700, "total": 2999700, "sellingPrices": [ { "value": 2999700, "quantity": 1 } ] } } ], "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "paymentData": { "installmentOptions": [ { "paymentSystem": 2, "bin": null, "paymentName": "Visa", "paymentGroupName": "creditCardPaymentGroup", "value": 2999700, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 2999700, "total": 2999700, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 2999700, "total": 2999700 } ] } ] }, { "paymentSystem": 6, "bin": null, "paymentName": "Boleto Bancário", "paymentGroupName": "bankInvoicePaymentGroup", "value": 2999700, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 2999700, "total": 2999700, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 2999700, "total": 2999700 } ] } ] }, { "paymentSystem": 127, "bin": null, "paymentName": "MercadoPagoPro", "paymentGroupName": "MercadoPagoProPaymentGroup", "value": 2999700, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 2999700, "total": 2999700, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 2999700, "total": 2999700 } ] } ] }, { "paymentSystem": 202, "bin": null, "paymentName": "Dinheiro", "paymentGroupName": "custom202PaymentGroupPaymentGroup", "value": 2999700, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 2999700, "total": 2999700, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 2999700, "total": 2999700 } ] } ] } ], "paymentSystems": [ { "id": 202, "name": "Dinheiro", "groupName": "custom202PaymentGroupPaymentGroup", "validator": { "regex": "^4[0-9]{15}$", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-9]{3}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "202", "template": "custom202PaymentGroupPaymentGroup-template", "requiresDocument": false, "displayDocument": false, "isCustom": true, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2022-07-22T11:39:36.37197Z", "availablePayments": null }, { "id": 6, "name": "Boleto Bancário", "groupName": "bankInvoicePaymentGroup", "validator": { "regex": "^4[0-9]{15}$", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-9]{3}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "6", "template": "bankInvoicePaymentGroup-template", "requiresDocument": false, "displayDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2022-07-19T11:39:36.37197Z", "availablePayments": null }, { "id": 2, "name": "Visa", "groupName": "creditCardPaymentGroup", "validator": { "regex": "^4[0-9]{15}$", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-9]{3}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "2", "template": "creditCardPaymentGroup-template", "requiresDocument": false, "displayDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2022-07-19T11:39:36.37197Z", "availablePayments": null }, { "id": 127, "name": "MercadoPagoPro", "groupName": "MercadoPagoProPaymentGroup", "validator": { "regex": "^4[0-9]{15}$", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-9]{3}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "127", "template": "MercadoPagoProPaymentGroup-template", "requiresDocument": false, "displayDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2022-07-19T11:39:36.37197Z", "availablePayments": null } ], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [], "availableAssociations": {} }, "selectableGifts": [], "marketingData": { "utmSource": "app", "utmMedium": "CPC", "utmCampaign": "Black friday", "utmipage": "true", "utmiPart": "true", "utmiCampaign": "true", "coupon": "blackfriday", "marketingTags": [ "tag1", "tag2" ] }, "country": "BRA", "postalCode": "12345-000", "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ], "logisticsInfo": [ { "itemIndex": 0, "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "quantity": 1, "shipsTo": [ "BRA" ], "slas": [ { "id": "Normal", "deliveryChannel": "delivery", "name": "Normal", "deliveryIds": [ { "courierId": "1", "warehouseId": "1_1", "dockId": "1", "courierName": "Transportadora", "quantity": 1, "kitItemDetails": [] } ], "shippingEstimate": "3bd", "shippingEstimateDate": null, "lockTTL": "10d", "availableDeliveryWindows": { "startDateUtc": "2024-03-27T00:00:00+00:00", "endDateUtc": "2024-03-27T00:00:00+00:00", "price": 0, "lisPrice": 0, "tax": 0 }, "deliveryWindow": { "startDateUtc": "2014-04-21T09:00:00+00:00", "endDateUtc": "2014-04-21T12:00:00+00:00", "price": 0, "listprice": 1000, "tax": 0 }, "price": 1500, "listPrice": 1500, "tax": 0, "pickupStoreInfo": { "isPickupStore": false, "friendlyName": null, "address": null, "additionalInfo": null, "dockId": null }, "pickupPointId": null, "pickupDistance": 0, "polygonName": null, "transitTime": "3bd" } ], "deliveryChannels": [ { "id": "pickup-in-point" }, { "id": "delivery" } ] } ], "messages": [], "purchaseConditions": { "itemPurchaseConditions": [ { "id": "1", "seller": "1", "sellerChain": [ "1" ], "slas": [ { "id": "Normal", "deliveryChannel": "delivery", "name": "Normal", "deliveryIds": [ { "courierId": "1", "warehouseId": "1_1", "dockId": "1", "courierName": "Transportadora", "quantity": 1, "kitItemDetails": [] } ], "shippingEstimate": "3bd", "shippingEstimateDate": null, "lockTTL": "10d", "availableDeliveryWindows": { "startDateUtc": "2024-03-27T00:00:00+00:00", "endDateUtc": "2024-03-27T00:00:00+00:00", "price": 0, "lisPrice": 0, "tax": 0 }, "deliveryWindow": { "startDateUtc": "2014-04-21T09:00:00+00:00", "endDateUtc": "2014-04-21T12:00:00+00:00", "price": 0, "listprice": 1000, "tax": 0 }, "price": 1500, "listPrice": 1500, "tax": 0, "pickupStoreInfo": { "isPickupStore": false, "friendlyName": null, "address": null, "additionalInfo": null, "dockId": null }, "pickupPointId": null, "pickupDistance": 0, "polygonName": null, "transitTime": "3bd" } ], "price": 9999, "listPrice": 9999 } ] }, "pickupPoints": [], "subscriptionData": null, "totals": [ { "id": "Items", "name": "Total dos Itens", "value": 2999700 } ], "itemMetadata": { "items": [ { "id": "1", "seller": "1", "assemblyOptions": [ { "id": "T-Shirt Customization", "name": "T-Shirt Customization", "required": false, "inputValues": { "T-Shirt Name": { "maximumNumberOfCharacters": 2, "domain": [ "[]" ] } }, "composition": null } ] } ] } } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm": { "get": { "tags": [ "Shopping cart" ], "summary": "Get current or create a new cart", "description": "You can use this request to get your current shopping cart information (`orderFormId`) or to create a new cart.\r\n\r\n**Important**: To create a new empty shopping cart you need to send this request with the query param `forceNewCart=true`.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` obtained in response is the identification code of the newly created cart.\n\r\n\r> This request has a time out of 45 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "CreateANewCart", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "forceNewCart", "in": "query", "description": "Use this query parameter to create a new empty shopping cart.", "required": false, "style": "form", "schema": { "type": "boolean", "example": true } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "example": { "orderFormId": "9ceee0fde6db489fbc682a0e2ab13a86", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "checkedInPickupPointId": "21", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "userType": "User type", "ignoreProfileData": false, "value": 0, "messages": [], "items": [], "selectableGifts": [], "totalizers": [], "shippingData": null, "clientProfileData": { "email": "clark.kent@examplemail.com", "firstName": "Clark", "lastName": "Kent", "document": "12345678900", "documentType": "cpf", "phone": "+5500123456789", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "paymentData": { "installmentOptions": [], "paymentSystems": [], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": null, "sellers": [], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": null }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } }, "schema": { "$ref": "#/components/schemas/orderForm" } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}": { "get": { "tags": [ "Shopping cart" ], "summary": "Get cart information by ID", "description": "Retrieves all information associated to a given shopping cart.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 45 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | Checkout | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "GetCartInformationById", "security": [], "parameters": [ { "name": "orderFormId", "in": "path", "description": "ID of the orderForm corresponding to the cart whose information you want to retrieve.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "refreshOutdatedData", "in": "query", "description": "It is possible to use the [Update cart items request](https://developers.vtex.com/vtex-rest-api/reference/cart-update#itemsupdate) so as to allow outdated information in the `orderForm`, which may improve performance in some cases. To guarantee that all cart information is updated, send this request with this parameter as `true`. We recommend doing this in the final stages of the shopping experience, starting from the checkout page.", "required": false, "style": "form", "schema": { "type": "boolean", "example": true } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "example": { "orderFormId": "ede846222cd44046ba6c638442c3505a", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "checkedInPickupPointId": "21", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "userType": "User type", "ignoreProfileData": false, "value": 15000, "messages": [], "items": [ { "uniqueId": "E0F2B7AF5CD74D668F1E27537206912C", "id": "1", "productId": "1", "productRefId": "1", "refId": "0001", "ean": "123456789", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "modalType": null, "parentItemIndex": null, "parentAssemblyBinding": null, "assemblies": [], "priceValidUntil": "2021-02-27T14:59:00.8288784Z", "tax": 0, "taxCode": "54WC8ZN6K8", "price": 15000, "listPrice": 30000, "manualPrice": null, "sellingPrice": 15000, "rewardValue": 0, "isGift": false, "additionalInfo": { "brandName": "Royal Canin", "brandId": "2000000", "offeringInfo": null, "offeringType": null, "offeringTypeId": null }, "preSaleDate": null, "productCategoryIds": "/1/10/", "productCategories": { "10": "Ração Seca", "1": "Alimentação" }, "quantity": 1, "seller": "1", "sellerChain": [ "1" ], "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "components": [], "bundleItems": [], "attachments": [], "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "offerings": [], "priceTags": [], "availability": "available", "measurementUnit": "un", "unitMultiplier": 1.0, "manufacturerCode": null } ], "selectableGifts": [], "totalizers": [ { "id": "Items", "name": "Total dos Itens", "value": 15000 } ], "shippingData": { "address": null, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", "slas": [], "shipsTo": [ "BRA" ], "itemId": "1", "deliveryChannels": [ { "id": "pickup-in-point" }, { "id": "delivery" } ] } ], "selectedAddresses": [], "availableAddresses": [], "pickupPoints": [] }, "clientProfileData": { "email": "clark.kent@examplemail.com", "firstName": "Clark", "lastName": "Kent", "document": "12345678900", "documentType": "cpf", "phone": "+5500123456789", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "paymentData": { "installmentOptions": [ { "paymentSystem": 2, "bin": null, "paymentName": null, "paymentGroupName": null, "value": 15000, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 15000, "total": 15000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 15000, "total": 15000 } ] }, { "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 7500, "total": 15000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 7500, "total": 15000 } ] } ] } ], "paymentSystems": [ { "id": 2, "name": "Visa", "groupName": "creditCardPaymentGroup", "validator": { "regex": "^2[1-8]{17}$", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-3]{8}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2, 1 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "2", "template": "creditCardPaymentGroup-template", "requiresDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2020-03-05T14:59:00.7879306Z", "availablePayments": null } ], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": null, "sellers": [ { "id": "1", "name": "lojadobreno", "logo": "Logo" } ], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": null }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } }, "schema": { "$ref": "#/components/schemas/orderForm" } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/items/removeAll": { "post": { "tags": [ "Shopping cart" ], "summary": "Remove all items from shopping cart", "description": "This request removes all items from a given cart, leaving it empty.\r\n\r\nYou must send an empty JSON in the body of the request.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\r\n\r\n>ℹ️ Request body must always be sent with empty value \"{ }\" in this endpoint.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Shopping Cart Full Access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "RemoveAllItems", "security": [], "parameters": [ { "name": "orderFormId", "in": "path", "description": "ID of the orderForm corresponding to the cart whose items you want to remove.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "This object must be empty.", "default": {} } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/orderForm" }, "example": { "orderFormId": "ede846222cd44046ba6c638442c3505a", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "checkedInPickupPointId": "21", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "userType": "User type", "ignoreProfileData": false, "value": 0, "messages": [], "items": [], "selectableGifts": [], "totalizers": [], "shippingData": { "address": null, "logisticsInfo": [], "selectedAddresses": [], "availableAddresses": [], "pickupPoints": [] }, "clientProfileData": { "email": "john.doe@google.com", "firstName": "John", "lastName": "Doe", "document": "769387308", "documentType": "dni", "phone": "+5491111223344", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "paymentData": { "installmentOptions": [ { "paymentSystem": 2, "bin": null, "paymentName": null, "paymentGroupName": null, "value": 15000, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 15000, "total": 15000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 15000, "total": 15000 } ] } ] } ], "paymentSystems": [ { "id": 4, "name": "Mastercard", "groupName": "creditCardPaymentGroup", "validator": { "regex": "^((5(([1-2]|[5-5])[0-3]{8}|0((2|9)([0-2]{5}))|1(0(5((0|[4-8])[1-7]{6})|([2-3]|[1-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[1-3]{9}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "4", "template": "creditCardPaymentGroup-template", "requiresDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2020-03-05T14:23:23.8196668Z", "availablePayments": null } ], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": null, "sellers": [], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": null }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } } } } } }, "deprecated": false } }, "/checkout/changeToAnonymousUser/{orderFormId}": { "get": { "tags": [ "Shopping cart" ], "summary": "Remove all personal data from shopping cart", "description": "This call removes all user information, making a cart anonymous while leaving the items.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure that represents a shopping cart and contains all information about it. Hence, the `orderFormId` is the identification code of a given cart.\r\n\r\nThis call works by creating a new orderForm, setting a new cookie, and returning a redirect 302 to the cart URL (`/checkout/#/orderform`).\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "Removeallpersonaldata", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "orderFormId", "in": "path", "description": "ID of the orderForm corresponding to the cart whose user's personal data you want to remove.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "object", "description": "Empty object." }, "example": {} } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/items/update": { "post": { "tags": [ "Shopping cart" ], "summary": "Update cart items", "description": "You can use this request to:\n\r\n\r1. Change the quantity of one or more items in a specific cart.\n\r2. Remove an item from the cart (by sending the `quantity` value = `0` in the request body).\r\n\r\n>ℹ️ To remove all items from the cart at the same time, use the [Remove all items](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/items/removeAll?endpoint=post-/api/checkout/pub/orderForm/-orderFormId-/items/removeAll) endpoint.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure that represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 45 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "ItemsUpdate", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "orderFormId", "in": "path", "description": "ID of the `orderForm` corresponding to the cart whose items you want to update.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "name": "allowedOutdatedData", "in": "query", "description": "In order to optimize performance, this parameter allows some information to not be updated when there are changes in the minicart. For instance, if a shopper adds another unit of a given SKU to the cart, it may not be necessary to recalculate payment information, which could impact performance.\n\r\n\rThis array accepts strings and currently the only possible value is `”paymentData”`.", "required": false, "style": "form", "schema": { "type": "array", "example": [ "paymentData" ], "items": { "type": "string", "description": "Information that will not be updated when there are changes in the minicart." } } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "orderItems": { "type": "array", "description": "Array containing the cart items. Each object inside this array corresponds to a different item.", "items": { "type": "object", "description": "Cart item information.", "properties": { "quantity": { "type": "integer", "format": "int32", "description": "The quantity of the item in the cart.", "example": 3 }, "index": { "type": "integer", "description": "The position of the item in the array.", "example": 0 } } } } } } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/orderForm" }, "example": { "orderFormId": "ede846222cd44046ba6c638442c3505a", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "profileProvider": "VTEX", "availableAccounts": [], "availableAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", "isDisposable": true, "postalCode": "70386000", "city": "Brasília", "state": "DF", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "userType": "User type", "ignoreProfileData": false, "value": 34390, "messages": [], "items": [ { "uniqueId": "9D6E447B3FF64CEDA33B17C01379C119", "id": "2", "productId": "2", "productRefId": "1", "refId": "CBC30L", "ean": null, "name": "Chopp Brahma Claro 30L", "skuName": "Chopp Brahma Claro 30L", "modalType": null, "parentItemIndex": null, "parentAssemblyBinding": null, "assemblies": [], "priceValidUntil": "2022-07-13T18:30:46Z", "tax": 0, "taxCode": "54WC8ZN6K8", "price": 32890, "listPrice": 49900, "manualPrice": null, "manualPriceAppliedBy": null, "sellingPrice": 32890, "rewardValue": 0, "isGift": false, "additionalInfo": { "dimension": null, "brandName": "Brahma", "brandId": "2000000", "offeringInfo": null, "offeringType": null, "offeringTypeId": null }, "preSaleDate": null, "productCategoryIds": "/1/", "productCategories": { "1": "Bebidas" }, "quantity": 1, "seller": "1", "sellerChain": [ "1" ], "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", "detailUrl": "/chopp-brahma-claro-30l/p", "components": [], "bundleItems": [], "attachments": [], "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "offerings": [], "priceTags": [], "availability": "available", "measurementUnit": "un", "unitMultiplier": 1, "manufacturerCode": null, "priceDefinition": { "calculatedSellingPrice": 32890, "total": 32890, "sellingPrices": [ { "value": 32890, "quantity": 1 } ] } } ], "selectableGifts": [], "totalizers": [ { "id": "Items", "name": "Total dos Itens", "value": 15000 } ], "shippingData": { "address": { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "70386000", "city": "Brasília", "state": "DF", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] }, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "addressId": "teste", "slas": [ { "id": "Normal", "deliveryChannel": "delivery", "name": "Normal", "deliveryIds": [ { "courierId": "1", "warehouseId": "1_1", "dockId": "1", "courierName": "Transportadora", "quantity": 1, "kitItemDetails": [] } ], "shippingEstimate": "3bd", "shippingEstimateDate": null, "lockTTL": "10d", "availableDeliveryWindows": [], "deliveryWindow": null, "price": 1500, "listPrice": 1500, "tax": 0, "pickupStoreInfo": { "isPickupStore": false, "friendlyName": null, "address": null, "additionalInfo": null, "dockId": null }, "pickupPointId": null, "pickupDistance": 0, "polygonName": null, "transitTime": "3bd" } ], "shipsTo": [ "BRA", "COL", "USA" ], "itemId": "2", "deliveryChannels": [ { "id": "delivery" }, { "id": "pickup-in-point" } ] } ], "selectedAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "availableAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "pickupPoints": [] }, "clientProfileData": { "email": "clark.kent@example.com", "firstName": "Clark", "lastName": "Kent", "document": "12345678900", "documentType": "cpf", "phone": "+5521998765432", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "paymentData": { "installmentOptions": [ { "paymentSystem": 2, "bin": null, "paymentName": null, "paymentGroupName": null, "value": 15000, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 15000, "total": 15000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 15000, "total": 15000 } ] }, { "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 7500, "total": 15000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 7500, "total": 15000 } ] } ] } ], "paymentSystems": [ { "id": 2, "name": "Visa", "groupName": "creditCardPaymentGroup", "validator": { "regex": "^2[1-8]{17}$", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-3]{8}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2, 1 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "2", "template": "creditCardPaymentGroup-template", "requiresDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2020-03-05T14:59:00.7879306Z", "availablePayments": null } ], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": { "coupon": "free-shipping", "utmSource": "app", "utmMedium": "CPC", "utmCampaign": "Black friday", "utmipage": null, "utmiPart": null, "utmiCampaign": null }, "sellers": [ { "id": "1", "name": "lojadobreno", "logo": "Logo" } ], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": false }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymboupdate cartl": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/items": { "post": { "tags": [ "Shopping cart" ], "summary": "Add cart items", "description": "Use this request to add a new item to the shopping cart.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 45 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "Items", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "orderFormId", "in": "path", "description": "ID of the orderForm corresponding to the cart in which the new item will be added.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "name": "allowedOutdatedData", "in": "query", "description": "In order to optimize performance, this parameter allows some information to not be updated when there are changes in the minicart. For instance, if a shopper adds another unit of a given SKU to the cart, it may not be necessary to recalculate payment information, which could impact performance.\n\r\n\rThis array accepts strings and currently the only possible value is `”paymentData”`.", "required": false, "style": "form", "schema": { "type": "array", "example": [ "paymentData" ], "items": { "type": "string", "description": "Information that will not be updated when there are changes in the minicart." } } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "orderItems": { "type": "array", "description": "Array containing the cart items. Each object inside this array corresponds to a different item.", "items": { "required": [ "quantity", "seller", "id", "index" ], "type": "object", "description": "Cart item information", "properties": { "quantity": { "type": "integer", "format": "int32", "description": "The quantity of the item (SKU) in the cart.", "example": 3 }, "seller": { "type": "string", "description": "The seller responsible for the SKU.", "example": "1" }, "id": { "type": "string", "description": "The ID of the SKU in VTEX platform.", "example": "2005" }, "index": { "type": "integer", "description": "The position of the item in the array.", "example": 0 }, "price": { "type": "integer", "description": "Price of the item in cents. Send this value in case you want to make a bulk price change.", "example": 1099 } } } } } } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/orderForm" }, "example": { "orderFormId": "ede846222cd44046ba6c638442c3505a", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "profileProvider": "VTEX", "availableAccounts": [], "availableAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", "isDisposable": true, "postalCode": "70386000", "city": "Brasília", "state": "DF", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "userType": "User type", "ignoreProfileData": false, "value": 34390, "messages": [], "items": [ { "uniqueId": "9D6E447B3FF64CEDA33B17C01379C119", "id": "2", "productId": "2005", "productRefId": "1", "refId": "CBC30L", "ean": null, "name": "Chopp Brahma Claro 30L", "skuName": "Chopp Brahma Claro 30L", "modalType": null, "parentItemIndex": null, "parentAssemblyBinding": null, "assemblies": [], "priceValidUntil": "2022-07-13T18:30:46Z", "tax": 0, "taxCode": "54WC8ZN6K8", "price": 32890, "listPrice": 49900, "manualPrice": null, "manualPriceAppliedBy": null, "sellingPrice": 32890, "rewardValue": 0, "isGift": false, "additionalInfo": { "dimension": null, "brandName": "Brahma", "brandId": "2000000", "offeringInfo": null, "offeringType": null, "offeringTypeId": null }, "preSaleDate": null, "productCategoryIds": "/1/", "productCategories": { "1": "Bebidas" }, "quantity": 3, "seller": "1", "sellerChain": [ "1" ], "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", "detailUrl": "/chopp-brahma-claro-30l/p", "components": [], "bundleItems": [], "attachments": [], "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "offerings": [], "priceTags": [], "availability": "available", "measurementUnit": "un", "unitMultiplier": 1, "manufacturerCode": null, "priceDefinition": { "calculatedSellingPrice": 32890, "total": 32890, "sellingPrices": [ { "value": 32890, "quantity": 1 } ] } } ], "selectableGifts": [], "totalizers": [ { "id": "Items", "name": "Total dos Itens", "value": 15000 } ], "shippingData": { "address": { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "70386000", "city": "Brasília", "state": "DF", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] }, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "addressId": "teste", "slas": [ { "id": "Normal", "deliveryChannel": "delivery", "name": "Normal", "deliveryIds": [ { "courierId": "1", "warehouseId": "1_1", "dockId": "1", "courierName": "Transportadora", "quantity": 1, "kitItemDetails": [] } ], "shippingEstimate": "3bd", "shippingEstimateDate": null, "lockTTL": "10d", "availableDeliveryWindows": [], "deliveryWindow": null, "price": 1500, "listPrice": 1500, "tax": 0, "pickupStoreInfo": { "isPickupStore": false, "friendlyName": null, "address": null, "additionalInfo": null, "dockId": null }, "pickupPointId": null, "pickupDistance": 0, "polygonName": null, "transitTime": "3bd" } ], "shipsTo": [ "BRA", "COL", "USA" ], "itemId": "2", "deliveryChannels": [ { "id": "delivery" }, { "id": "pickup-in-point" } ] } ], "selectedAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "availableAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "pickupPoints": [] }, "clientProfileData": { "email": "clark.kent@example.com", "firstName": "Clark", "lastName": "Kent", "document": "12345678900", "documentType": "cpf", "phone": "+5521998765432", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "paymentData": { "installmentOptions": [ { "paymentSystem": 2, "bin": null, "paymentName": null, "paymentGroupName": null, "value": 15000, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 15000, "total": 15000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 15000, "total": 15000 } ] }, { "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 7500, "total": 15000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 7500, "total": 15000 } ] } ] } ], "paymentSystems": [ { "id": 2, "name": "Visa", "groupName": "creditCardPaymentGroup", "validator": { "regex": "^2[1-8]{17}$", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-3]{8}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2, 1 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "2", "template": "creditCardPaymentGroup-template", "requiresDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2020-03-05T14:59:00.7879306Z", "availablePayments": null } ], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": { "coupon": "free-shipping", "utmSource": "app", "utmMedium": "CPC", "utmCampaign": "Black friday", "utmipage": null, "utmiPart": null, "utmiCampaign": null }, "sellers": [ { "id": "1", "name": "lojadobreno", "logo": "Logo" } ], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": false }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymboupdate cartl": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } } } } } }, "deprecated": false }, "patch": { "tags": [ "Shopping cart" ], "summary": "Handle cart items", "description": "You can use this request to:\n\r\n\r1. Change the quantity or price of one or more items to the shopping cart.\n\r2. Add a new item to the shopping cart.\r\n\r\n**Important**: To add a new item to the shopping cart, do not send the string `index` in the request body.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure that represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 45 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "ItemsHandle", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "orderFormId", "in": "path", "description": "ID of the orderForm corresponding to the cart in which items will be handled.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "orderItems": { "type": "array", "description": "Array containing the cart items. Each object inside this array corresponds to a different item.", "items": { "required": [ "id", "quantity", "seller" ], "type": "object", "description": "Cart item information.", "properties": { "id": { "type": "string", "description": "The ID of the SKU in VTEX platform.", "example": "2005" }, "quantity": { "type": "integer", "format": "int32", "description": "The quantity of the item (SKU) in the cart.", "example": 3 }, "seller": { "type": "string", "description": "The seller responsible for the SKU.", "example": "1" }, "index": { "type": "integer", "description": "The position of the item in the array. This string should be sent only to modify price or quantity of an item. NOTE: This string should not be sent when you are adding a new item to the cart.", "example": 0 }, "price": { "type": "integer", "description": "Price of the item in cents. Send this value in case you want to make a bulk price change.", "example": 1099 }, "attachments": { "type": "array", "description": "Array containing information on attachments.", "items": { "type": "object", "description": "Attachment information.", "properties": { "name": { "type": "string", "description": "Attachment identification.", "example": "Packages" }, "content": { "type": "object", "description": "Attachment content data. E.g. `\"Do you want to receive packages?\": \"Yes\"`.", "nullable": true, "properties": { "content": { "type": "string", "description": "Content referring to the customization requested by the customer.", "example": "content-example" } } } } } }, "noSplitItem": { "type": "boolean", "description": "Indicates whether the item can be splitted.", "example": false }, "allowedOutdatedData": { "type": "array", "description": "In order to optimize performance, this parameter allows some information to not be updated when there are changes in the minicart. For instance, if a shopper adds another unit of a given SKU to the cart, it may not be necessary to recalculate payment information, which could impact performance. This array accepts strings and currently the only possible value is `\"paymentData\"`.", "items": { "type": "string", "description": "String that allows some information to not be updated when there are changes in the minicart.", "example": "paymentData" } } } } } } } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/orderForm" }, "example": { "orderFormId": "ede846222cd44046ba6c638442c3505a", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "profileProvider": "VTEX", "availableAccounts": [], "availableAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", "isDisposable": true, "postalCode": "70386000", "city": "Brasília", "state": "DF", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "userType": "User type", "ignoreProfileData": false, "value": 34390, "messages": [], "items": [ { "uniqueId": "9D6E447B3FF64CEDA33B17C01379C119", "id": "2", "productId": "2005", "productRefId": "1", "refId": "CBC30L", "ean": null, "name": "Chopp Brahma Claro 30L", "skuName": "Chopp Brahma Claro 30L", "modalType": null, "parentItemIndex": null, "parentAssemblyBinding": null, "assemblies": [], "priceValidUntil": "2022-07-13T18:30:46Z", "tax": 0, "taxCode": "54WC8ZN6K8", "price": 32890, "listPrice": 49900, "manualPrice": null, "manualPriceAppliedBy": null, "sellingPrice": 32890, "rewardValue": 0, "isGift": false, "additionalInfo": { "dimension": null, "brandName": "Brahma", "brandId": "2000000", "offeringInfo": null, "offeringType": null, "offeringTypeId": null }, "preSaleDate": null, "productCategoryIds": "/1/", "productCategories": { "1": "Bebidas" }, "quantity": 3, "seller": "1", "sellerChain": [ "1" ], "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", "detailUrl": "/chopp-brahma-claro-30l/p", "components": [], "bundleItems": [], "attachments": [], "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "offerings": [], "priceTags": [], "availability": "available", "measurementUnit": "un", "unitMultiplier": 1, "manufacturerCode": null, "priceDefinition": { "calculatedSellingPrice": 32890, "total": 32890, "sellingPrices": [ { "value": 32890, "quantity": 1 } ] } } ], "selectableGifts": [], "totalizers": [ { "id": "Items", "name": "Total dos Itens", "value": 15000 } ], "shippingData": { "address": { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "70386000", "city": "Brasília", "state": "DF", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] }, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "addressId": "teste", "slas": [ { "id": "Normal", "deliveryChannel": "delivery", "name": "Normal", "deliveryIds": [ { "courierId": "1", "warehouseId": "1_1", "dockId": "1", "courierName": "Transportadora", "quantity": 1, "kitItemDetails": [] } ], "shippingEstimate": "3bd", "shippingEstimateDate": null, "lockTTL": "10d", "availableDeliveryWindows": [], "deliveryWindow": null, "price": 1500, "listPrice": 1500, "tax": 0, "pickupStoreInfo": { "isPickupStore": false, "friendlyName": null, "address": null, "additionalInfo": null, "dockId": null }, "pickupPointId": null, "pickupDistance": 0, "polygonName": null, "transitTime": "3bd" } ], "shipsTo": [ "BRA", "COL", "USA" ], "itemId": "2", "deliveryChannels": [ { "id": "delivery" }, { "id": "pickup-in-point" } ] } ], "selectedAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "availableAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "pickupPoints": [] }, "clientProfileData": { "email": "clark.kent@example.com", "firstName": "Clark", "lastName": "Kent", "document": "12345678900", "documentType": "cpf", "phone": "+5521998765432", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "paymentData": { "installmentOptions": [ { "paymentSystem": 2, "bin": null, "paymentName": null, "paymentGroupName": null, "value": 15000, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 15000, "total": 15000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 15000, "total": 15000 } ] }, { "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 7500, "total": 15000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 7500, "total": 15000 } ] } ] } ], "paymentSystems": [ { "id": 2, "name": "Visa", "groupName": "creditCardPaymentGroup", "validator": { "regex": "^2[1-8]{17}$", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-3]{8}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2, 1 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "2", "template": "creditCardPaymentGroup-template", "requiresDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2020-03-05T14:59:00.7879306Z", "availablePayments": null } ], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": { "coupon": "free-shipping", "utmSource": "app", "utmMedium": "CPC", "utmCampaign": "Black friday", "utmipage": null, "utmiPart": null, "utmiCampaign": null }, "sellers": [ { "id": "1", "name": "lojadobreno", "logo": "Logo" } ], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": false }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymboupdate cartl": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/items/{itemIndex}/price": { "put": { "tags": [ "Shopping cart" ], "summary": "Change price of an SKU in a cart", "description": "This request changes the price of an SKU in a cart.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\rYou need to inform which cart you are referring to, by sending its `orderFormId` and what is the item whose price you want to change, by sending its `itemIndex`.\n\r\n\rYou also need to pass the new price value in the body.\n\r\n\rRemember that, to use this endpoint, the feature of *manual price* must be active. To check if it's active, use the [Get orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#get-/api/checkout/pvt/configuration/orderForm) endpoint. To make it active, use the [Update orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pvt/configuration/orderForm) endpoint, making the `allowManualPrice` field `true`.\n\r\n\r> Whenever you use this request to change the price of an item, all items in that cart with the same SKU are affected by this change. This applies even to items that share the SKU but have been separated into different objects in the `items` array due to customizations or attachments, for example.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "PriceChange", "parameters": [ { "name": "orderFormId", "in": "path", "description": "ID of the orderForm corresponding to the cart whose items will have the price changed.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "name": "itemIndex", "in": "path", "description": "The index of the item in the cart. Each cart item is identified by an index, starting in 0.", "required": true, "style": "simple", "schema": { "type": "string", "example": "0" } }, { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PriceChangeRequest" }, "example": { "price": 10000 } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "example": { "orderFormId": "ede846222cd44046ba6c638442c3505a", "salesChannel": "1", "loggedIn": true, "isCheckedIn": false, "storeId": "1", "checkedInPickupPointId": "21", "allowManualPrice": true, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "userType": "User type", "ignoreProfileData": false, "value": 10000, "messages": [], "items": [ { "uniqueId": "E0F2B7AF5CD74D668F1E27537206912C", "id": "1", "productId": "1", "productRefId": "1", "refId": "0001", "ean": "123456789", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "modalType": null, "parentItemIndex": null, "parentAssemblyBinding": null, "assemblies": [], "priceValidUntil": "2021-02-27T14:59:00.8288784Z", "tax": 0, "taxCode": "54WC8ZN6K8", "price": 15000, "listPrice": 30000, "manualPrice": 10000, "sellingPrice": 10000, "rewardValue": 0, "isGift": false, "additionalInfo": { "brandName": "Royal Canin", "brandId": "2000000", "offeringInfo": null, "offeringType": null, "offeringTypeId": null }, "preSaleDate": null, "productCategoryIds": "/1/10/", "productCategories": { "10": "Ração Seca", "1": "Alimentação" }, "quantity": 1, "seller": "1", "sellerChain": [ "1" ], "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "components": [], "bundleItems": [], "attachments": [], "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "offerings": [], "priceTags": [ { "name": "DISCOUNT@MANUALPRICE", "value": -5000, "rawValue": -50.0, "isPercentual": false, "identifier": null } ], "availability": "available", "measurementUnit": "un", "unitMultiplier": 1.0, "manufacturerCode": null } ], "selectableGifts": [], "totalizers": [ { "id": "Items", "name": "Total dos Itens", "value": 15000 }, { "id": "Discounts", "name": "Total dos Descontos", "value": -5000 } ], "shippingData": { "address": null, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", "slas": [], "shipsTo": [ "BRA" ], "itemId": "1", "deliveryChannels": [ { "id": "pickup-in-point" }, { "id": "delivery" } ] } ], "selectedAddresses": [], "availableAddresses": [], "pickupPoints": [] }, "clientProfileData": null, "paymentData": { "installmentOptions": [ { "paymentSystem": 2, "bin": null, "paymentName": null, "paymentGroupName": null, "value": 10000, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 10000, "total": 10000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 10000, "total": 10000 } ] }, { "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 5000, "total": 10000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 5000, "total": 10000 } ] } ] } ], "paymentSystems": [ { "id": 2, "name": "Visa", "groupName": "creditCardPaymentGroup", "validator": { "regex": "^4[0-9]{15}$", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-9]{3}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "2", "template": "creditCardPaymentGroup-template", "requiresDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2020-03-05T16:42:31.7836281Z", "availablePayments": null } ], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": null, "sellers": [ { "id": "1", "name": "lojadobreno", "logo": "Logo" } ], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": null }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } }, "schema": { "$ref": "#/components/schemas/orderForm" } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/profile": { "patch": { "tags": [ "Shopping cart" ], "summary": "Ignore profile data on checkout", "description": "When a shopper provides an email address at Checkout, the platform tries to retrieve existing profile information for that email and add it to the shopping cart information. Use this request if you want to change this behavior for a given cart, meaning profile information will not be included in the order automatically.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\r\n\r\nNote that this request will only work if you have not sent the `clientProfileData` to the cart yet. Sending it to a cart that already has a `clientProfileData` should return a status `403 Forbidden` error, with an `Access denied` message.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "IgnoreProfileData", "security": [], "parameters": [ { "name": "orderFormId", "in": "path", "description": "ID of the orderForm corresponding to the cart whose items will have the price changed.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "ignoreProfileData": { "type": "boolean", "description": "Indicates whether profile data should be ignored.", "example": false } } }, "example": { "ignoreProfileData": true } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "example": { "orderFormId": "68b287ae65534704b1a1e42e47c82abc", "salesChannel": "1", "loggedIn": true, "isCheckedIn": false, "storeId": "1", "checkedInPickupPointId": "21", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "userType": "User type", "ignoreProfileData": true, "value": 0, "messages": [], "items": [], "selectableGifts": [], "totalizers": [], "shippingData": null, "clientProfileData": { "email": "clark.kent@examplemail.com", "firstName": "Clark", "lastName": "Kent", "document": "12345678900", "documentType": "cpf", "phone": "+5500123456789", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "paymentData": { "updateStatus": "updated", "installmentOptions": [], "paymentSystems": [], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": null, "sellers": [], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": null }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } }, "schema": { "$ref": "#/components/schemas/orderForm" } } } } }, "deprecated": false } }, "/api/checkout/pub/profiles": { "get": { "tags": [ "Cart attachments" ], "summary": "Get client profile by email", "description": "Retrieves a client's profile information by providing an email address.\n\r\n\rIf the response body fields are empty, the following situations may have occurred:\n\r\n\r1. There is no client registered with the email address provided in your store, or;\n\r2. Client profile is invalid or incomplete. However, you can use the query parameter `ensureComplete=false` to get incomplete profiles. For more information, see [SmartCheckout - Customer information automatic fill-in](https://help.vtex.com/en/tutorial/smartcheckout-customer-information-automatic-fill-in--2Nuu3xAFzdhIzJIldAdtan).\r\n\r\n>⚠️ The authentication of this endpoint can change depending on the customer context. If you are consulting information from a customer with a complete profile on the store, the response will return the customer's data masked. You can only access the customer data with an authenticated request.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Shopping Cart Full Access** |\r\n\r\nYou can [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) with that resource or use one of the following [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy):\r\n\r\n| **Role** | **Resource** | \r\n| --------------- | ----------------- | \r\n| Checkout Admin | Shopping Cart Full Access |\r\n\r\n>\u2757 Assigning a [predefined role](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) to users or application keys usually grants permission to multiple [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3). If some of these permissions are not necessary, consider creating a custom role instead. For more information regarding security, see [Best practices for using application keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm).\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication).", "operationId": "GetClientProfileByEmail", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "email", "in": "query", "description": "Client's email address to be searched.", "required": true, "style": "form", "schema": { "type": "string", "example": "clark.kent@examplemail.com" } }, { "name": "ensureComplete", "in": "query", "description": "Indicates whether the returned profiles must be complete or not.", "required": false, "style": "form", "schema": { "type": "boolean", "example": false } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "userProfileId": { "type": "string", "description": "Unique ID associated with the customer profile." }, "profileProvider": { "type": "string", "description": "Profile provider." }, "availableAccounts": { "type": "array", "description": "Available accounts.", "items": { "type": "string", "description": "Account name." } }, "availableAddresses": { "type": "array", "description": "Information on each available address.", "items": { "type": "object", "description": "Address information.", "properties": { "addressType": { "type": "string", "description": "Address type." }, "receiverName": { "type": "string", "description": "Name of the receiver." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "city": { "type": "string", "description": "City of the address." }, "state": { "type": "string", "description": "State of the address." }, "country": { "type": "string", "description": "Country of the address. ISO three-letter code." }, "street": { "type": "string", "description": "Street of the address." }, "number": { "type": "string", "description": "Number of the address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the address." }, "complement": { "type": "string", "description": "Complement to the address.", "nullable": true }, "reference": { "type": "string", "description": "Reference that may help in the location of the address.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } } }, "userProfile": { "type": "object", "description": "Customer profile information.", "properties": { "email": { "type": "string", "description": "Email address.", "nullable": true }, "firstName": { "type": "string", "description": "First name.", "nullable": true }, "lastName": { "type": "string", "description": "Last name." }, "document": { "type": "string", "description": "Document." }, "documentType": { "type": "string", "description": "Document type." }, "phone": { "type": "string", "description": "Telephone number." }, "corporateName": { "type": "string", "description": "Name of the company. Used for corporate clients.", "nullable": true }, "tradeName": { "type": "string", "description": "Trade name. Used for corporate clients.", "nullable": true }, "corporateDocument": { "type": "string", "description": "Document. Used for corporate clients.", "nullable": true }, "stateInscription": { "type": "string", "description": "State inscription. Used for corporate clients.", "nullable": true }, "corporatePhone": { "type": "string", "description": "Telephone number. Used for corporate clients.", "nullable": true }, "isCorporate": { "type": "boolean", "description": "Indicates whether the client is corporate." }, "profileCompleteOnLoading": { "type": "boolean", "description": "Profile complete when loading.", "nullable": true }, "profileErrorOnLoading": { "type": "boolean", "description": "Profile error when loading.", "nullable": true }, "customerClass": { "type": "string", "description": "Customer class.", "nullable": true } } }, "isComplete": { "type": "boolean", "description": "Indicates whether customer profile is complete." } } }, "example": { "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "profileProvider": "VTEX", "availableAccounts": [], "availableAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", "isDisposable": false, "postalCode": "12345-000", "city": "Metropolis", "state": "NY", "country": "USA", "street": "My street", "number": "123", "neighborhood": "My neighborhood", "complement": "Complement", "reference": "Reference", "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "userProfile": { "email": "clark.kent@example.com", "firstName": "Clark", "lastName": "Kent", "document": "12345678900", "documentType": "cpf", "phone": "+556199999999", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "isComplete": true } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/attachments/clientProfileData": { "post": { "tags": [ "Cart attachments" ], "summary": "Add client profile", "description": "Use this request to include client profile information to a given shopping cart.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 12 seconds.\r\n\r\n>⚠️ The authentication of this endpoint can change depending on the customer context. If you are modifying information from a customer with a complete profile on the store, the response will return the customer's data masked. You can only access the customer data with an authenticated request.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "AddClientProfile", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "orderFormId", "in": "path", "description": "ID of the orderForm that will receive client profile information.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "Customer's profile information.", "required": [ "email", "firstName", "lastName", "documentType", "document" ], "properties": { "email": { "type": "string", "description": "Customer's email address.", "example": "customer@examplemail.com", "nullable": true }, "firstName": { "type": "string", "description": "Customer's first name.", "example": "first-name", "nullable": true }, "lastName": { "type": "string", "description": "Customer's last name.", "example": "last-name" }, "documentType": { "type": "string", "description": "Type of the document informed by the customer.", "example": "cpf" }, "document": { "type": "string", "description": "Document number informed by the customer.", "example": "123456789" }, "phone": { "type": "string", "description": "Customer's phone number.", "example": "+55110988887777" }, "corporateName": { "type": "string", "description": "Company name, if the customer is a legal entity.", "example": "company-name" }, "tradeName": { "type": "string", "description": "Trade name, if the customer is a legal entity.", "example": "trade-name" }, "corporateDocument": { "type": "string", "description": "Corporate document, if the customer is a legal entity.", "example": "12345678000100" }, "stateInscription": { "type": "string", "description": "State inscription, if the customer is a legal entity.", "example": "12345678" }, "corporatePhone": { "type": "string", "description": "Corporate phone number, if the customer is a legal entity.", "example": "+551100988887777" }, "isCorporate": { "type": "boolean", "description": "Set `true` if the customer is a legal entity.", "example": false } } } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "example": { "orderFormId": "9ceee0fde6db489fbc809a0e2ab13a86", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "checkedInPickupPointId": "21", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "userType": "User type", "ignoreProfileData": false, "value": 0, "messages": [], "items": [], "selectableGifts": [], "totalizers": [], "shippingData": null, "clientProfileData": { "email": "clark.kent@examplemail.com", "firstName": "Clark", "lastName": "Kent", "document": "44444444444", "documentType": "cpf", "phone": "+5511123456789", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "paymentData": { "updateStatus": "updated", "installmentOptions": [], "paymentSystems": [], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": null, "sellers": [], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": null }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } }, "schema": { "$ref": "#/components/schemas/orderForm" } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/attachments/shippingData": { "post": { "tags": [ "Cart attachments" ], "summary": "Add shipping address and select delivery option", "description": "Use this request to include shipping information and/or selected delivery option to a given shopping cart.\r\n\r\nTo add shipping addresses send the `selectedAddresses` array. For delivery option use the `logisticsInfo` array.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 12 seconds.\r\n\r\n>⚠️ The authentication of this endpoint can change depending on the customer context. If you are modifying information from a customer with a complete profile on the store, the response will return the customer's data masked. You can only access the customer data with an authenticated request.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "AddShippingAddress", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "orderFormId", "in": "path", "description": "ID of the orderForm that will receive client profile information.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "clearAddressIfPostalCodeNotFound": { "type": "boolean", "description": "This field should be sent as `false` to prevent the address information from being filled in automatically based on the `postalCode` information.", "example": false }, "selectedAddresses": { "type": "array", "description": "List of objects with addresses information.", "items": { "type": "object", "description": "Address information.", "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`, among others.", "example": "residential" }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order.", "example": "receiver name" }, "addressId": { "type": "string", "description": "Address ID.", "example": "c3701fc4c61b4d1b91f67e81415db44d", "nullable": true }, "postalCode": { "type": "string", "description": "Postal Code.", "example": "12345-000" }, "city": { "type": "string", "description": "City of the shipping address.", "example": "Rio de Janeiro" }, "state": { "type": "string", "description": "State of the shipping address.", "example": "RJ" }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address.", "example": "BRA" }, "street": { "type": "string", "description": "Street of the shipping address.", "example": "Praia de Botafogo" }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address.", "example": "300" }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address.", "example": "Botafogo" }, "complement": { "type": "string", "description": "Complement to the shipping address in case it applies.", "example": "3rd floor", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "example": "Grey building" }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "example": [ -47.924747467041016, -15.832582473754883 ], "items": { "type": "number", "example": -47.924747467041016, "description": "Geocoordinates." } } } } }, "logisticsInfo": { "type": "array", "description": "Array with logistics information on each item of the `items` array in the `orderForm`.", "items": { "type": "object", "description": "Logistic information.", "properties": { "itemIndex": { "type": "integer", "description": "Index of item in items array.", "example": 0 }, "selectedDeliveryChannel": { "type": "string", "description": "Delivery channel selected by the customer. For example, `\"delivery\"` or `\"pickup-in-point\"`.", "example": "delivery", "nullable": true }, "selectedSla": { "type": "string", "description": "Selected SLA. For example, `\"normal\"` or `\"express\"`.", "example": "normal", "nullable": true } } } } } } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/orderForm" }, "example": { "orderFormId": "2f586e50342a4f87b7e0654c56299e88", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "checkedInPickupPointId": "21", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "userType": "User type", "ignoreProfileData": false, "value": 0, "messages": [], "items": [], "selectableGifts": [], "totalizers": [], "shippingData": { "address": { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "c3701fc4c61b4d1b91f67e81415db44d", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "ST", "country": "BRA", "street": "My street", "number": "1091", "neighborhood": "My neighborhood", "complement": null, "reference": null, "geoCoordinates": [] }, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "addressId": "f239ad30f8c948a382543ab2c739b967", "slas": [ { "id": "Retirada (VTEXSP)", "deliveryChannel": "pickup-in-point", "name": "Retirada (VTEXSP)", "deliveryIds": [ { "courierId": "1ee17c2", "warehouseId": "1_1", "dockId": "1", "courierName": "Retira em Loja", "quantity": 2, "kitItemDetails": [] } ], "shippingEstimate": "3bd", "shippingEstimateDate": null, "lockTTL": null, "availableDeliveryWindows": { "startDateUtc": "2024-03-27T00:00:00+00:00", "endDateUtc": "2024-03-27T00:00:00+00:00", "price": 0, "lisPrice": 0, "tax": 0 }, "deliveryWindow": { "startDateUtc": "2014-04-21T09:00:00+00:00", "endDateUtc": "2014-04-21T12:00:00+00:00", "price": 0, "listprice": 1000, "tax": 0 }, "price": 250, "listPrice": 250, "tax": 0, "pickupStoreInfo": { "isPickupStore": true, "friendlyName": "VTEX SP", "address": { "addressType": "pickup", "receiverName": "Clark Kent", "addressId": "VTEXSP", "isDisposable": true, "postalCode": "04538-132", "city": "São Paulo", "state": "SP", "country": "BRA", "street": "Avenida Brigadeiro Faria Lima", "number": "4440", "neighborhood": "Itaim Bibi", "complement": "Apto 101", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] }, "additionalInfo": "Additional info", "dockId": "1" }, "pickupPointId": "1_VTEXSP", "pickupDistance": 15, "polygonName": null, "transitTime": "3bd" } ], "shipsTo": [ "BRA", "COL", "USA" ], "itemId": "2", "deliveryChannels": [ { "id": "pickup-in-point" }, { "id": "delivery" } ] } ], "selectedAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "c3701fc4c61b4d1b91f67e81415db44d", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "ST", "country": "BRA", "street": "My street", "number": "1091", "neighborhood": "My neighborhood", "complement": null, "reference": null, "geoCoordinates": [] } ], "availableAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "ae3173b32bf64663a81fc42b057be211", "isDisposable": true, "postalCode": "70386060", "city": "Brasília", "state": "DF", "country": "BRA", "street": "Quadra SQS 116 Bloco F", "number": "101", "neighborhood": "Asa Sul", "complement": null, "reference": null, "geoCoordinates": [ -47.925922393798828, -15.832707405090332 ] }, { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "449dcbe11c5844098fb4545a49cf6e07", "isDisposable": true, "postalCode": "00076555", "city": "Brasília", "state": "DF", "country": "BRA", "street": "My street", "number": "101", "neighborhood": "Asa sul", "complement": null, "reference": null, "geoCoordinates": [] }, { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "c3701fc4c61b4d1b91f67e81415db44d", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "ST", "country": "BRA", "street": "My street", "number": "1091", "neighborhood": "My neighborhood", "complement": null, "reference": null, "geoCoordinates": [] } ], "pickupPoints": [] }, "clientProfileData": { "email": "clark.kent@example.com", "firstName": "Clark", "lastName": "Kent", "document": "12345678900", "documentType": "cpf", "phone": "+5521998765432", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "paymentData": { "updateStatus": "updated", "installmentOptions": [], "paymentSystems": [], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": null, "sellers": [], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": false }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/attachments/clientPreferencesData": { "post": { "tags": [ "Cart attachments" ], "summary": "Add client preferences", "description": "Use this request to include client preferences information to a given shopping cart.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 12 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "AddClientPreferences", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "orderFormId", "in": "path", "description": "ID of the orderForm that will receive client profile information.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "locale": { "type": "string", "description": "Locale chosen by the shopper. Determines website language.", "example": "EN" }, "optinNewsLetter": { "type": "boolean", "description": "Indicates whether the shopper opted in to receive the store's news letter.", "example": false, "nullable": true } } } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/orderForm" }, "example": { "orderFormId": "a7e4702410864239959f9bdcf77e3fba", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "checkedInPickupPointId": "21", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "userType": "User type", "ignoreProfileData": false, "value": 0, "messages": [], "items": [], "selectableGifts": [], "totalizers": [], "shippingData": null, "clientProfileData": null, "paymentData": { "updateStatus": "updated", "installmentOptions": [], "paymentSystems": [], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": null, "sellers": [], "clientPreferencesData": { "locale": "PT", "optinNewsLetter": false }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/attachments/marketingData": { "post": { "tags": [ "Cart attachments" ], "summary": "Add marketing data", "description": "Use this request to include marketing information to a given shopping cart.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 12 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "AddMarketingData", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "orderFormId", "in": "path", "description": "ID of the orderForm that will receive client profile information.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "coupon": { "type": "string", "description": "Sending an existing coupon code in this field will return the corresponding discount in the purchase. Use the [cart simulation](https://developers.vtex.com/vtex-rest-api/reference/orderform#orderformsimulation) request to check which coupons might apply before placing the order.\n\r\n\rTo send more than one coupon code to the same cart, use commas. E.g.`\"sales25, blackfriday30\"`.", "example": "free-shipping" }, "marketingTags": { "type": "array", "description": "Marketing tags. Limited to a maximum of 50 items.", "items": { "type": "string", "description": "Marketing tag.", "example": "tag1" }, "example": [ "tag1", "tag2" ] }, "utmSource": { "type": "string", "description": "UTM source.", "example": "Facebook" }, "utmMedium": { "type": "string", "description": "UTM medium.", "example": "CPC" }, "utmCampaign": { "type": "string", "description": "UTM campaign.", "example": "Black friday" }, "utmiPage": { "type": "string", "description": "UTMI page (internal utm).", "example": "utmi_page-example" }, "utmiPart": { "type": "string", "description": "UTMI part (internal utm).", "example": "utmi_part-exmaple" }, "utmiCampaign": { "type": "string", "description": "UTMI campaign (internal utm).", "example": "utmi_campaign-exmaple" } } } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "example": { "orderFormId": "7c5b47971fad41b89102c7ab7bb8b08b", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "checkedInPickupPointId": "21", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "userType": "User type", "ignoreProfileData": false, "value": 0, "messages": [], "items": [], "selectableGifts": [], "totalizers": [], "shippingData": null, "clientProfileData": null, "paymentData": { "updateStatus": "updated", "installmentOptions": [], "paymentSystems": [], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": { "utmSource": "app", "utmMedium": "CPC", "utmCampaign": "Black friday", "utmipage": null, "utmiPart": null, "utmiCampaign": null, "coupon": "free-shipping", "marketingTags": [ "tag1", "tag2" ] }, "sellers": [], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": null }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } }, "schema": { "$ref": "#/components/schemas/orderForm" } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/attachments/paymentData": { "post": { "tags": [ "Cart attachments" ], "summary": "Add payment data", "description": "Use this request to include payment information to a given shopping cart. The payment information attachment in the shopping cart does not determine the final order payment method in itself. However, it allows tha platform to update any relevant information that may be impacted by the payment method.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 12 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "AddPaymentData", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "orderFormId", "in": "path", "description": "ID of the orderForm that will receive client profile information.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "payments": { "type": "array", "description": "Array with information on each payment chosen by the shopper.", "items": { "type": "object", "description": "Payment information.", "properties": { "paymentSystem": { "type": "integer", "description": "Payment system ID.", "example": 1 }, "paymentSystemName": { "type": "string", "description": "Payment system name.", "example": "Boleto Bancário" }, "group": { "type": "string", "description": "Payment system group.", "example": "bankInvoicePaymentGroup" }, "installments": { "type": "integer", "description": "Selected number of installments.", "example": 1 }, "installmentsInterestRate": { "type": "number", "description": "Installments' interest rate.", "example": 0 }, "installmentsValue": { "type": "integer", "description": "Value of the installments.", "example": 1 }, "value": { "type": "integer", "description": "Total value assigned to this payment.", "example": 100 }, "referenceValue": { "type": "integer", "description": "Reference value used to calculate total order value with interest.", "example": 100 }, "hasDefaultBillingAddress": { "type": "boolean", "description": "Indicates whether billing address for this payment is the default address.", "example": false } } } } } } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "example": { "orderFormId": "29154e27383145cc8ce1f7a1df0d99c4", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "checkedInPickupPointId": "21", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "userType": "User type", "ignoreProfileData": false, "value": 65780, "messages": [], "items": [ { "uniqueId": "3CBFA140CE8F4E208062FC15CE9ED8D3", "id": "2", "productId": "2", "productRefId": "1", "refId": "CBC30L", "ean": null, "name": "Chopp Claro 30L", "skuName": "Chopp Claro 30L", "modalType": null, "parentItemIndex": null, "parentAssemblyBinding": null, "assemblies": [], "priceValidUntil": "2022-07-28T22:25:25Z", "tax": 0, "price": 32890, "listPrice": 49900, "manualPrice": null, "manualPriceAppliedBy": null, "sellingPrice": 32890, "rewardValue": 0, "isGift": false, "additionalInfo": { "dimension": null, "brandName": "Beershow", "brandId": "2000000", "offeringInfo": null, "offeringType": null, "offeringTypeId": null }, "preSaleDate": null, "productCategoryIds": "/1/", "productCategories": { "1": "Bebidas" }, "quantity": 2, "seller": "1", "sellerChain": [ "1" ], "imageUrl": "http://myshop.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", "detailUrl": "/chopp-claro-30l/p", "components": [], "bundleItems": [], "attachments": [], "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "offerings": [], "priceTags": [], "availability": "available", "measurementUnit": "un", "unitMultiplier": 1.0, "manufacturerCode": null, "priceDefinition": { "calculatedSellingPrice": 32890, "total": 65780, "sellingPrices": [ { "value": 32890, "quantity": 2 } ] } } ], "selectableGifts": [], "totalizers": [ { "id": "Items", "name": "Total dos Itens", "value": 65780 } ], "shippingData": { "address": null, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", "slas": [], "shipsTo": [ "BRA", "COL", "USA" ], "itemId": "2", "deliveryChannels": [ { "id": "delivery" }, { "id": "pickup-in-point" } ] } ], "selectedAddresses": [], "availableAddresses": [], "pickupPoints": [] }, "clientProfileData": null, "paymentData": { "updateStatus": "updated", "installmentOptions": [ { "paymentSystem": 2, "bin": null, "paymentName": null, "paymentGroupName": null, "value": 65780, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 65780, "total": 65780, "sellerMerchantInstallments": [ { "id": "MYSHOP", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 65780, "total": 65780 } ] } ] }, { "paymentSystem": 4, "bin": null, "paymentName": null, "paymentGroupName": null, "value": 65780, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 65780, "total": 65780, "sellerMerchantInstallments": [ { "id": "MYSHOP", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 65780, "total": 65780 } ] } ] }, { "paymentSystem": 6, "bin": null, "paymentName": null, "paymentGroupName": null, "value": 65780, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 65780, "total": 65780, "sellerMerchantInstallments": [ { "id": "MYSHOP", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 65780, "total": 65780 } ] } ] } ], "paymentSystems": [ { "id": 2, "name": "Visa", "groupName": "creditCardPaymentGroup", "validator": { "regex": "^4[0-9]{15}$", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-9]{3}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "2", "template": "creditCardPaymentGroup-template", "requiresDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2021-08-04T22:19:04.9948627Z", "availablePayments": null }, { "id": 4, "name": "Mastercard", "groupName": "creditCardPaymentGroup", "validator": { "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-9]{3}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "4", "template": "creditCardPaymentGroup-template", "requiresDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2021-08-04T22:19:04.9948627Z", "availablePayments": null }, { "id": 6, "name": "Boleto Bancário", "groupName": "bankInvoicePaymentGroup", "validator": { "regex": "^((5(([1-2]|[4-5])[0-9]{8}|0((1|6)([0-9]{7}))|3(0(4((0|[2-9])[0-9]{5})|([0-3]|[5-9])[0-9]{6})|[1-9][0-9]{7})))|((508116)\\d{4,10})|((502121)\\d{4,10})|((589916)\\d{4,10})|(2[0-9]{15})|(67[0-9]{14})|(506387)\\d{4,10})", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-9]{3}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "6", "template": "bankInvoicePaymentGroup-template", "requiresDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2021-08-04T22:19:04.9948627Z", "availablePayments": null } ], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "installments": 1, "referenceValue": 65780, "value": 65780, "merchantSellerPayments": [ { "id": "MYSHOP", "installments": 1, "referenceValue": 65780, "value": 65780, "interestRate": 0, "installmentValue": 65780 } ] } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": null, "sellers": [ { "id": "1", "name": "My Seller", "logo": "Logo" } ], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": null }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "2", "seller": "1", "name": "Chopp Claro 30L", "skuName": "Chopp Claro 30L", "productId": "2", "refId": "CBC30L", "ean": null, "imageUrl": "http://myshop.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", "detailUrl": "/chopp-claro-30l/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } }, "schema": { "$ref": "#/components/schemas/orderForm" } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/attachments/merchantContextData": { "post": { "tags": [ "Cart attachments" ], "summary": "Add merchant context data", "description": "This endpoint is used for the merchant to add to the cart any relevant information that is related to the context of a specific order.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\r> This request has a time out of 12 seconds.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "AddMerchantContextData", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "orderFormId", "in": "path", "description": "ID of the orderForm that will receive the relevant information added by the merchant.", "required": true, "style": "simple", "schema": { "type": "string", "example": "29154e27383145cc8ce1f7a1df0d99c4" } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "salesAssociateData" ], "properties": { "salesAssociateData": { "type": "object", "description": "Sales Associate information.", "properties": { "salesAssociateId": { "type": "string", "description": "Sales Associate (Seller) identification code. All information should be registered by the merchant. Maximum of 100 characters.", "example": "seller123" } } } } } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "salesAssociateId": { "type": "string", "description": "Sales Associate (Seller) identification code." } } }, "example": { "salesAssociateData": { "salesAssociateId": "seller123" } } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/customData/{appId}": { "put": { "tags": [ "Custom data" ], "summary": "Set multiple custom field values", "description": "Your account may create `apps`, which contain custom fields, through the [Update orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pvt/configuration/orderForm) request. The values of these custom fields can then be updated by this request.\n\r\n\rTo do that, you need to inform the ID of the app you created with the configuration API (`appId`).\n\r\n\rIn the body of the request, for each field created in this app (`appFieldName`) you will inform a value (`appFieldValue`).\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "SetMultipleCustomFieldValues", "security": [], "parameters": [ { "name": "orderFormId", "in": "path", "description": "ID of the orderForm that will receive the new custom field values.", "required": true, "style": "simple", "schema": { "type": "string", "example": "29154e27383145cc8ce1f7a1df0d99c4" } }, { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "appId", "in": "path", "description": "ID of the app created with the configuration API.", "required": true, "style": "simple", "schema": { "type": "string", "example": "appId" } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "description": "Here you must add the pairs of Field Name and Field Value.", "type": "object", "additionalProperties": true, "example": { "fieldName": "fieldValue" } } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/orderForm" }, "example": { "orderFormId": "ede846222cd44046ba6c638442c3505a", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "checkedInPickupPointId": "21", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "userType": "User type", "ignoreProfileData": false, "value": 10000, "messages": [], "items": [ { "uniqueId": "E0F2B7AF5CD74D668F1E27537206912C", "id": "1", "productId": "1", "productRefId": "1", "refId": "0001", "ean": "123456789", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "modalType": null, "parentItemIndex": null, "parentAssemblyBinding": null, "assemblies": [], "priceValidUntil": "2021-02-27T14:59:00.8288784Z", "tax": 0, "price": 15000, "listPrice": 30000, "manualPrice": 10000, "sellingPrice": 10000, "rewardValue": 0, "isGift": false, "additionalInfo": { "brandName": "Royal Canin", "brandId": "2000000", "offeringInfo": null, "offeringType": null, "offeringTypeId": null }, "preSaleDate": null, "productCategoryIds": "/1/10/", "productCategories": { "10": "Ração Seca", "1": "Alimentação" }, "quantity": 1, "seller": "1", "sellerChain": [ "1" ], "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "components": [], "bundleItems": [], "attachments": [], "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "offerings": [], "priceTags": [ { "name": "DISCOUNT@MANUALPRICE", "value": -5000, "rawValue": -50.0, "isPercentual": false, "identifier": null } ], "availability": "available", "measurementUnit": "un", "unitMultiplier": 1.0, "manufacturerCode": null } ], "selectableGifts": [], "totalizers": [ { "id": "Items", "name": "Total dos Itens", "value": 15000 }, { "id": "Discounts", "name": "Total dos Descontos", "value": -5000 } ], "shippingData": { "address": null, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", "slas": [], "shipsTo": [ "BRA" ], "itemId": "1", "deliveryChannels": [ { "id": "pickup-in-point" }, { "id": "delivery" } ] } ], "selectedAddresses": [], "availableAddresses": [], "pickupPoints": [] }, "clientProfileData": null, "paymentData": { "installmentOptions": [ { "paymentSystem": 2, "bin": null, "paymentName": null, "paymentGroupName": null, "value": 10000, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 10000, "total": 10000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 10000, "total": 10000 } ] }, { "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 5000, "total": 10000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 5000, "total": 10000 } ] } ] } ], "paymentSystems": [ { "id": 2, "name": "Visa", "groupName": "creditCardPaymentGroup", "validator": { "regex": "^4[0-9]{15}$", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-9]{3}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "2", "template": "creditCardPaymentGroup-template", "requiresDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2020-03-05T16:42:31.7836281Z", "availablePayments": null } ], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": null, "sellers": [ { "id": "1", "name": "lojadobreno", "logo": "Logo" } ], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": null }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": { "customApps": [ { "fields": { "testField1": "testValue1", "testField2": "testValue2" }, "id": "abcd", "major": 1 } ] }, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/customData/{appId}/{appFieldName}": { "put": { "tags": [ "Custom data" ], "summary": "Set single custom field value", "description": "Your account may create `apps`, which contain custom fields, through the [Update orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pvt/configuration/orderForm) request. The value of a specific custom field can then be updated by this request.\n\r\n\rTo do that, you need to inform in the URL the ID of the app you created with the configuration API (`appId`).\n\r\n\rIn the body of the request, you will inform the new value (`appFieldValue`, passed through the body) of the specific field created in this app (identified by the `appFieldName` parameter, passed through the URL).\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "SetSingleCustomFieldValue", "security": [], "parameters": [ { "name": "orderFormId", "in": "path", "description": "The ID of the orderForm whose custom field's value you want to change.", "required": true, "style": "simple", "schema": { "type": "string", "example": "29154e27383145cc8ce1f7a1df0d99c4" } }, { "name": "appId", "in": "path", "description": "ID of the app created through the Update orderForm Configuration endpoint.", "required": true, "style": "simple", "schema": { "type": "string", "example": "appId" } }, { "name": "appFieldName", "in": "path", "description": "Name of the app's field created through the Update orderForm Configuration endpoint.", "required": true, "style": "simple", "schema": { "type": "string", "example": "appFieldName" } }, { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetsinglecustomfieldvalueRequest" }, "example": { "value": "{appFieldValue}" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "example": { "orderFormId": "ede846222cd44046ba6c638442c3505a", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "checkedInPickupPointId": "21", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "userType": "User type", "ignoreProfileData": false, "value": 10000, "messages": [], "items": [ { "uniqueId": "E0F2B7AF5CD74D668F1E27537206912C", "id": "1", "productId": "1", "productRefId": "1", "refId": "0001", "ean": "123456789", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "modalType": null, "parentItemIndex": null, "parentAssemblyBinding": null, "assemblies": [], "priceValidUntil": "2021-02-27T14:59:00.8288784Z", "tax": 0, "price": 15000, "listPrice": 30000, "manualPrice": 10000, "sellingPrice": 10000, "rewardValue": 0, "isGift": false, "additionalInfo": { "brandName": "Royal Canin", "brandId": "2000000", "offeringInfo": null, "offeringType": null, "offeringTypeId": null }, "preSaleDate": null, "productCategoryIds": "/1/10/", "productCategories": { "10": "Ração Seca", "1": "Alimentação" }, "quantity": 1, "seller": "1", "sellerChain": [ "1" ], "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "components": [], "bundleItems": [], "attachments": [], "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "offerings": [], "priceTags": [ { "name": "DISCOUNT@MANUALPRICE", "value": -5000, "rawValue": -50.0, "isPercentual": false, "identifier": null } ], "availability": "available", "measurementUnit": "un", "unitMultiplier": 1.0, "manufacturerCode": null } ], "selectableGifts": [], "totalizers": [ { "id": "Items", "name": "Total dos Itens", "value": 15000 }, { "id": "Discounts", "name": "Total dos Descontos", "value": -5000 } ], "shippingData": { "address": null, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", "slas": [], "shipsTo": [ "BRA" ], "itemId": "1", "deliveryChannels": [ { "id": "pickup-in-point" }, { "id": "delivery" } ] } ], "selectedAddresses": [], "availableAddresses": [], "pickupPoints": [] }, "clientProfileData": null, "paymentData": { "installmentOptions": [ { "paymentSystem": 2, "bin": null, "paymentName": null, "paymentGroupName": null, "value": 10000, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 10000, "total": 10000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 10000, "total": 10000 } ] }, { "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 5000, "total": 10000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 5000, "total": 10000 } ] } ] } ], "paymentSystems": [ { "id": 2, "name": "Visa", "groupName": "creditCardPaymentGroup", "validator": { "regex": "^4[0-9]{15}$", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-9]{3}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "2", "template": "creditCardPaymentGroup-template", "requiresDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2020-03-05T16:42:31.7836281Z", "availablePayments": null } ], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": null, "sellers": [ { "id": "1", "name": "lojadobreno", "logo": "Logo" } ], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": null }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": { "customApps": [ { "fields": { "testField1": "Hello World", "testField2": "testValue2" }, "id": "abcd", "major": 1 } ] }, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } }, "schema": { "$ref": "#/components/schemas/orderForm" } } } } }, "deprecated": false }, "delete": { "tags": [ "Custom data" ], "summary": "Remove single custom field value", "description": "Your account may create `apps`, which contain custom fields, through the [Update orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pvt/configuration/orderForm) request. The value of a specific custom field can be removed by this request.\n\r\n\rTo do that, you need to inform in the URL the ID of the app you created with the configuration API (`appId`).\n\r\n\rYou also need to iform the specific field created in this app (identified by the `appFieldName` parameter, also passed through the URL) whose value you want to remove.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "Removesinglecustomfieldvalue", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "orderFormId", "in": "path", "description": "The ID of the orderForm from which you want to remove the custom field value.", "required": true, "style": "simple", "schema": { "type": "string", "example": "29154e27383145cc8ce1f7a1df0d99c4" } }, { "name": "appId", "in": "path", "description": "ID of the app created through the Update orderForm Configuration endpoint.", "required": true, "style": "simple", "schema": { "type": "string", "example": "appId" } }, { "name": "appFieldName", "in": "path", "description": "Name of the app's field created through the Update orderForm Configuration endpoint and which will be deleted.", "required": true, "style": "simple", "schema": { "type": "string", "example": "appFieldName" } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "example": { "orderFormId": "ede846222cd44046ba6c638442c3505a", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "checkedInPickupPointId": "21", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "userType": "User type", "ignoreProfileData": false, "value": 10000, "messages": [], "items": [ { "uniqueId": "E0F2B7AF5CD74D668F1E27537206912C", "id": "1", "productId": "1", "productRefId": "1", "refId": "0001", "ean": "123456789", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "modalType": null, "parentItemIndex": null, "parentAssemblyBinding": null, "assemblies": [], "priceValidUntil": "2021-02-27T14:59:00.8288784Z", "tax": 0, "price": 15000, "listPrice": 30000, "manualPrice": 10000, "sellingPrice": 10000, "rewardValue": 0, "isGift": false, "additionalInfo": { "brandName": "Royal Canin", "brandId": "2000000", "offeringInfo": null, "offeringType": null, "offeringTypeId": null }, "preSaleDate": null, "productCategoryIds": "/1/10/", "productCategories": { "10": "Ração Seca", "1": "Alimentação" }, "quantity": 1, "seller": "1", "sellerChain": [ "1" ], "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "components": [], "bundleItems": [], "attachments": [], "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "offerings": [], "priceTags": [ { "name": "DISCOUNT@MANUALPRICE", "value": -5000, "rawValue": -50.0, "isPercentual": false, "identifier": null } ], "availability": "available", "measurementUnit": "un", "unitMultiplier": 1.0, "manufacturerCode": null } ], "selectableGifts": [], "totalizers": [ { "id": "Items", "name": "Total dos Itens", "value": 15000 }, { "id": "Discounts", "name": "Total dos Descontos", "value": -5000 } ], "shippingData": { "address": null, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", "slas": [], "shipsTo": [ "BRA" ], "itemId": "1", "deliveryChannels": [ { "id": "pickup-in-point" }, { "id": "delivery" } ] } ], "selectedAddresses": [], "availableAddresses": [], "pickupPoints": [] }, "clientProfileData": null, "paymentData": { "installmentOptions": [ { "paymentSystem": 2, "bin": null, "paymentName": null, "paymentGroupName": null, "value": 10000, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 10000, "total": 10000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 10000, "total": 10000 } ] }, { "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 5000, "total": 10000, "sellerMerchantInstallments": [ { "id": "LOJADOBRENO", "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 5000, "total": 10000 } ] } ] } ], "paymentSystems": [ { "id": 2, "name": "Visa", "groupName": "creditCardPaymentGroup", "validator": { "regex": "^4[0-9]{15}$", "mask": "9999 9999 9999 9999", "cardCodeRegex": "^[0-9]{3}$", "cardCodeMask": "999", "weights": [ 2, 1, 2, 1, 2 ], "useCvv": true, "useExpirationDate": true, "useCardHolderName": true, "useBillingAddress": true }, "stringId": "2", "template": "creditCardPaymentGroup-template", "requiresDocument": false, "isCustom": false, "description": "Payment description", "requiresAuthentication": false, "dueDate": "2020-03-05T16:42:31.7836281Z", "availablePayments": null } ], "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "giftCardMessages": [], "availableAccounts": [], "availableTokens": [] }, "marketingData": null, "sellers": [ { "id": "1", "name": "lojadobreno", "logo": "Logo" } ], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": null }, "commercialConditionData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": true, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": { "customApps": [ { "fields": { "testField2": "testValue2" }, "id": "abcd", "major": 1 } ] }, "itemMetadata": { "items": [ { "id": "1", "seller": "1", "name": "Ração Royal Canin Feline Urinary 500g", "skuName": "Ração Royal Canin Feline Urinary 500g", "productId": "1", "refId": "0001", "ean": "123456789", "imageUrl": "http://lojadobreno.vteximg.com.br/arquivos/ids/155450-55-55/Racao-Royal-Canin-Feline-Urinary-SO.jpg?v=637139444438700000", "detailUrl": "/racao-royal-canin-feline-urinary/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } }, "schema": { "$ref": "#/components/schemas/orderForm" } } } } }, "deprecated": false } }, "/api/checkout/pvt/configuration/orderForm": { "get": { "tags": [ "Configuration" ], "summary": "Get orderForm configuration", "description": "Retrieves the settings that are currently applied to every orderForm in the account.\n\r\n\rThese settings are defined by the request [Update orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pvt/configuration/orderForm).\n\r\n\rAlways use this request to retrieve the current configuration before performing an update. By doing so you ensure that you are modifying only the properties you want.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "GetorderFormconfiguration", "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "paymentConfiguration": { "type": "object", "description": "Payment configuration information.", "properties": { "requiresAuthenticationForPreAuthorizedPaymentOption": { "type": "boolean", "description": "Determines whether pre-authorized payments require authentication." }, "allowInstallmentsMerge": { "type": "boolean", "description": "By default (when `false`), on a multi-seller purchase is on the run, a simple intersection with installment options configured by every seller will be available. When indicated as `true`, this option allows a more complex but flexible installment option, since it considers max installments of every seller configuration, even if those do not match. Installment values may not be equal in this case." } } }, "taxConfiguration": { "type": "object", "description": "External tax service configuration information.", "nullable": true, "properties": { "url": { "type": "string", "description": "Endpoint URL.", "nullable": true }, "authorizationHeader": { "type": "string", "description": "Authorization header.", "nullable": true }, "appId": { "type": "string", "description": "Custom data ID sent to the tax system." }, "isMarketplaceResponsibleForTaxes": { "type": "boolean", "description": "Indicates whether the marketplace is responsible for the products taxes." } } }, "minimumQuantityAccumulatedForItems": { "type": "integer", "description": "Minimum SKU quantity by cart." }, "decimalDigitsPrecision": { "type": "integer", "description": "Number of price digits." }, "minimumValueAccumulated": { "type": "integer", "description": "Minimum cart value.", "nullable": true }, "apps": { "type": "array", "nullable": true, "description": "Array of objects containing Apps configuration information.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "App ID." }, "fields": { "type": "array", "description": "Array of fields available to the app.", "items": { "type": "string" } }, "major": { "type": "integer", "description": "App major version." } } } }, "allowMultipleDeliveries": { "type": "boolean", "description": "On the same purchase, allows the selection of items from multiple delivery channels.", "nullable": true }, "allowManualPrice": { "type": "boolean", "description": "Allows the editing of SKU prices right in the cart.", "nullable": true }, "savePersonalDataAsOptIn": { "type": "boolean", "description": "Allows users to select whether they want the store to keep their personal and payment data saved.", "nullable": true }, "maxNumberOfWhiteLabelSellers": { "type": "integer", "description": "Allows the input of a limit of white label sellers involved on the cart.", "nullable": true }, "maskFirstPurchaseData": { "type": "boolean", "description": "Allows, on a first purchase, masking client's data. It could be useful when a shared cart is used and the client does not want to share its data.", "nullable": true }, "recaptchaValidation": { "type": "string", "description": "Configures reCAPTCHA validation for the account, defining in which situations the shopper will be prompted to validate a purchase with reCAPTCHA. Learn more about [reCAPTCHA validation for VTEX stores](https://help.vtex.com/en/tutorial/using-recaptcha-at-checkout--18Te3oDd7f4qcjKu9jhNzP)\n\r\n\rPossible values are:\n\r- `\"never\"`: no purchases are validated with reCAPTCHA.\n\r- `\"always\"`: every purchase is validated with reCAPTCHA.\n\r- `\"vtexCriteria\"`: only some purchases are validated with reCAPTCHA in order to minimize friction and improve shopping experience. VTEX's algorithm determines which sessions are trustworthy and which should be validated with reCAPTCHA. This is the recommended option.", "example": "vtexCriteria" }, "requiresLoginToPlaceOrder": { "type": "boolean", "description": "Indicates whether authentication is required for completing purchases.", "example": true }, "minimumPurchaseDowntimeSeconds": { "type": "integer", "description": "Minimum interval (in seconds) between successive purchases.", "example": 90 }, "cartAgeToUseNewCardSeconds": { "type": "integer", "description": "Minimum cart existence period (in seconds) before allowing the use of a new credit card.", "example": 30 } } }, "example": { "paymentConfiguration": { "requiresAuthenticationForPreAuthorizedPaymentOption": false, "allowInstallmentsMerge": false, "blockPaymentSession": null }, "taxConfiguration": null, "minimumQuantityAccumulatedForItems": 1, "decimalDigitsPrecision": 2, "minimumValueAccumulated": null, "apps": [ { "fields": [ "name", "age" ], "id": "abcd", "major": 1 } ], "allowMultipleDeliveries": false, "allowManualPrice": true, "savePersonalDataAsOptIn": false, "maxNumberOfWhiteLabelSellers": null, "maskFirstPurchaseData": null, "recaptchaValidation": "vtexCriteria", "requiresLoginToPlaceOrder": true, "minimumPurchaseDowntimeSeconds": 90, "cartAgeToUseNewCardSeconds": 30 } } } } }, "deprecated": false }, "post": { "tags": [ "Configuration" ], "summary": "Update orderForm configuration", "description": "Determines settings that will apply to every orderForm in the account.\n\r\n\rFor example, if you create an app using this request, every orderForm of this account will have the custom fields created though it.\n\r\n\r>ℹ️ Always retrieve the current configuration before performing an update to ensure that you are modifying only the properties you want. Otherwise, old values can be overwritten. To retrieve the current configuration, use the request [Get orderForm configuration](https://developers.vtex.com/docs/api-reference/checkout-api#get-/api/checkout/pvt/configuration/orderForm).\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "UpdateorderFormconfiguration", "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateorderFormconfigurationRequest" }, "example": { "paymentConfiguration": { "requiresAuthenticationForPreAuthorizedPaymentOption": false }, "taxConfiguration": null, "minimumQuantityAccumulatedForItems": 1, "decimalDigitsPrecision": 2, "minimumValueAccumulated": null, "apps": null, "allowMultipleDeliveries": null, "allowManualPrice": null, "requiresLoginToPlaceOrder": true, "minimumPurchaseDowntimeSeconds": 90, "cartAgeToUseNewCardSeconds": 30 } } }, "required": true }, "responses": { "204": { "description": "No Content. The request has succeeded." } }, "deprecated": false } }, "/api/checkout/pvt/configuration/window-to-change-seller": { "get": { "tags": [ "Configuration" ], "summary": "Get window to change seller", "description": "Retrieves a marketplace's window to change seller, that is, the period when it is possible to choose another seller to fulfill a given order after the original seller has canceled it.\n\r\n\r> The default period for this window is of 2 days, but it can be configured by the request Update window to change seller.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "GetWindowToChangeSeller", "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "example": "2" } } } }, "deprecated": false }, "post": { "tags": [ "Configuration" ], "summary": "Update window to change seller", "description": "Updates a marketplace's window to change seller, that is, the period when it is possible to choose another seller to fulfill a given order after the original seller has canceled it.\n\r\n\r> It is possible to check the current window using the request Get window to change seller.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save OrderForm Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "UpdateWindowToChangeSeller", "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WaitingTime" }, "example": { "waitingTime": 4 } } }, "required": true }, "responses": { "201": { "description": "Created" } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/messages/clear": { "post": { "tags": [ "Configuration" ], "summary": "Clear orderForm messages", "description": "This request removes all messages from the `messages` field of the orderForm , leaving it empty.\r\n\r\nYou must send an empty JSON in the body of the request.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\r\n\r\n**Important**: **Request Body** must always be sent with empty value \"{ }\" in this endpoint.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "ClearorderFormMessages", "security": [], "parameters": [ { "name": "orderFormId", "in": "path", "description": "ID of the orderForm corresponding to the cart whose messages you want to remove.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "description": "This object must be empty.", "default": {} } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "response": { "description": "Object response.", "type": "object", "properties": { "value": { "description": "Object with response value.", "type": "object", "properties": { "orderFormId": { "type": "string", "description": "ID of the orderForm corresponding to a specific cart." }, "salesChannel": { "type": "string", "description": "Attribute created by the seller, in their VTEX store configuration." }, "loggedIn": { "type": "boolean", "description": "Indicates whether the user is logged into the store." }, "isCheckedIn": { "type": "boolean", "description": "Indicates whether order is checked in." }, "storeId": { "type": "string", "description": "ID of the store.", "nullable": true }, "allowManualPrice": { "type": "boolean", "description": "Permission to modify item price manually." }, "canEditData": { "type": "boolean", "description": "Data can be edited." }, "userProfileId": { "type": "string", "description": "Unique ID associated with the customer profile." }, "profileProvider": { "type": "string", "description": "Profile provider." }, "availableAccounts": { "type": "array", "description": "Available accounts.", "items": { "type": "string", "description": "Available account." } }, "availableAddresses": { "type": "array", "description": "Information on each available address.", "items": { "type": "object", "properties": { "addressType": { "type": "string", "description": "Address type." }, "receiverName": { "type": "string", "description": "Name of the receiver." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "city": { "type": "string", "description": "City of the address." }, "state": { "type": "string", "description": "State of the address." }, "country": { "type": "string", "description": "Country of the address. ISO three-letter code." }, "street": { "type": "string", "description": "Street of the address." }, "number": { "type": "string", "description": "Number of the address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the address." }, "complement": { "type": "string", "description": "Complement to the address.", "nullable": true }, "reference": { "type": "string", "description": "Reference that may help in the location of the address.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } } }, "userType": { "type": "string", "description": "User type.", "nullable": true }, "ignoreProfileData": { "type": "boolean", "description": "Ignore customer profile data." }, "value": { "type": "integer", "description": "Total value of the order without separating cents. For example, $24.99 is represented `2499`." }, "messages": { "type": "array", "description": "Array containing an object for each message generated by our servers while processing the request.", "items": { "type": "string", "description": "Message." } }, "items": { "type": "array", "description": "Information on each item in the order.", "items": { "type": "object", "properties": { "uniqueId": { "type": "string", "description": "Unique ID." }, "id": { "type": "string", "description": "ID of the item." }, "productId": { "type": "string", "description": "Product ID." }, "productRefId": { "type": "string", "description": "Product Ref ID." }, "refId": { "type": "string", "description": "Ref ID." }, "ean": { "type": "string", "description": "European Article Number.", "nullable": true }, "name": { "type": "string", "description": "Product name." }, "skuName": { "type": "string", "description": "SKU name." }, "modalType": { "type": "string", "description": "Modal type.", "nullable": true }, "parentItemIndex": { "type": "integer", "description": "Parent item index.", "nullable": true }, "parentAssemblyBinding": { "type": "string", "description": "Parent assembly binding.", "nullable": true }, "priceValidUntil": { "type": "string", "description": "Price expiration date and time." }, "tax": { "type": "integer", "description": "Tax value in cents." }, "price": { "type": "integer", "description": "Price in cents." }, "listPrice": { "type": "integer", "description": "List price in cents." }, "manualPrice": { "type": "integer", "description": "Manual price in cents.", "nullable": true }, "manualPriceAppliedBy": { "type": "string", "description": "User that applied the manual price, if that is the case.", "nullable": true }, "sellingPrice": { "type": "integer", "description": "Selling price in cents. Note that this field may be subject to rounding discrepancies. We recommend retrieving data from the `priceDefinition` data structure instead." }, "rewardValue": { "type": "integer", "description": "Reward value in cents." }, "isGift": { "type": "boolean", "description": "Indicates whether item is a gift." }, "additionalInfo": { "type": "object", "description": "Additional information.", "properties": { "dimension": { "type": "string", "description": "Dimension.", "nullable": true }, "brandName": { "type": "string", "description": "Brand name." }, "brandId": { "type": "string", "description": "Brand ID." }, "offeringInfo": { "type": "string", "description": "Offering information.", "nullable": true }, "offeringType": { "type": "string", "description": "Offering type.", "nullable": true }, "offeringTypeId": { "type": "string", "description": "Offering type ID.", "nullable": true } } }, "preSaleDate": { "type": "string", "description": "Presale date.", "nullable": true }, "productCategoryIds": { "type": "string", "description": "Product category IDs." }, "productCategories": { "type": "object", "description": "Object, where each field is an ID from `productCategoryIds`.", "properties": { "{ID}": { "type": "string", "description": "Product category corresponding to the ID in the field key." } } }, "quantity": { "type": "integer", "description": "Quantity." }, "seller": { "type": "string", "description": "Seller." }, "sellerChain": { "type": "array", "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", "items": { "type": "string", "description": "Seller." } }, "imageUrl": { "type": "string", "description": "Image URL." }, "detailUrl": { "type": "string", "description": "Detail URL." }, "bundleItems": { "type": "array", "description": "Information on services sold along with the SKU. Example: a gift package.", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "Service type." }, "id": { "type": "integer", "description": "Service identifier." }, "name": { "type": "string", "description": "Service name." }, "price": { "type": "integer", "description": "Service price in cents." } } } }, "attachments": { "type": "array", "description": "Array containing information on attachments.", "items": { "type": "string", "description": "Attachment information." } }, "priceTags": { "type": "array", "description": "Array of price tags, each of which, modifies the price in some way, like discounts or rates that apply to the item in the context of the order.", "items": { "type": "object", "properties": { "identifier": { "type": "string", "description": "Price tag identifier.", "nullable": true }, "isPercentual": { "type": "boolean", "description": "Indicates whether price tag value is applied through a percentage." }, "name": { "type": "string", "description": "Price tag name." }, "rawValue": { "type": "integer", "description": "Price tag raw value." }, "value": { "type": "integer", "description": "Price tag value." } } } }, "availability": { "type": "string", "description": "Availability." }, "measurementUnit": { "type": "string", "description": "Measurement unit." }, "unitMultiplier": { "type": "integer", "description": "Unit multiplier." }, "manufacturerCode": { "type": "string", "description": "Manufacturer code.", "nullable": true }, "priceDefinition": { "type": "object", "description": "Price information for all units of a specific item.", "properties": { "calculatedSellingPrice": { "type": "integer", "description": "Item's calculated unitary selling price in cents." }, "total": { "type": "integer", "description": "Total value for all units of the item in cents." }, "sellingPrices": { "type": "array", "description": "Array of objects, each containing value (in cents) and quantity for the different rounding instances that can be combined to form the correctly rounded total.", "items": { "type": "object", "properties": { "value": { "type": "integer", "description": "Value in cents for that specific rounding." }, "quantity": { "type": "integer", "description": "Rounding quantity, meaning how many items are rounded to this value." } } } } } } } } }, "selectableGifts": { "type": "array", "description": "Array containing the data of the item selected as a gift.", "items": { "type": "string", "description": "Gift." } }, "totalizers": { "type": "array", "description": "Array containing an object for each totalizer for the purchase. Totalizers contain the sum of values for a specific part of the order (e.g. Total item value, Total shipping value).", "items": { "type": "object", "description": "Totalizer of purchases." } }, "shippingData": { "type": "object", "description": "Shipping information pertinent to the order.", "nullable": true, "properties": { "address": { "type": "object", "description": "Address information.", "nullable": true, "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } }, "logisticsInfo": { "type": "array", "description": "Array with logistics information. Each object in this array corresponds to an object in the `items` array, based on the respective `itemIndex`.", "items": { "type": "object", "properties": { "itemIndex": { "type": "integer", "description": "Index corresponding to the position of the object in the `items` array." }, "selectedSla": { "type": "string", "description": "SLA selected by the customer.", "nullable": true }, "selectedDeliveryChannel": { "type": "string", "description": "Delivery channel selected by the customer.", "nullable": true }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "slas": { "type": "array", "description": "Information on available SLAs.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "SLA ID." }, "deliveryChannel": { "type": "string", "description": "Delivery channel." }, "name": { "type": "string", "description": "SLA name." }, "deliveryIds": { "type": "array", "description": "Information on each delivery ID.", "items": { "type": "object", "properties": { "courierId": { "type": "string", "description": "Courier ID." }, "warehouseId": { "type": "string", "description": "Warehouse ID." }, "dockId": { "type": "string", "description": "Warehouse ID." }, "courierName": { "type": "string", "description": "Courier name." }, "quantity": { "type": "integer", "description": "Quantity." } } } }, "attachmentOfferings": { "type": "array", "description": "List of attachments details.", "nullable": true, "items": { "description": "Attachment details.", "type": "object", "required": [ "name", "required", "schema" ], "properties": { "name": { "type": "string", "description": "Name of the attachment.", "nullable": true }, "required": { "type": "boolean", "description": "Defines if the attachment is required (`true`) or not (`false`).", "nullable": true }, "schema": { "type": "object", "description": "Custom values [created into attachment](https://help.vtex.com/en/tutorial/adding-an-attachment--7zHMUpuoQE4cAskqEUWScU).", "nullable": true } } } }, "shippingEstimate": { "type": "string", "description": "Shipping estimate. For instance, Three business days will be represented `3bd`." }, "shippingEstimateDate": { "type": "string", "description": "When using the query parameter `individualShippingEstimates=true`, it will contain the estimated shipping date (e.g. `2023-09-09T11:29:00+00:00`), otherwise it will contain `null`.", "nullable": true }, "useIndividualShippingEstimates": { "type": "boolean", "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`." }, "lockTTL": { "type": "string", "description": "Estimate date of delivery.", "nullable": true }, "price": { "type": "integer", "description": "Price in cents." }, "listPrice": { "type": "integer", "description": "List price in cents." }, "tax": { "type": "integer", "description": "Tax in cents." }, "pickupStoreInfo": { "type": "object", "description": "Information on the pickup store.", "properties": { "isPickupStore": { "type": "boolean", "description": "Indicates whether it is the pickup store." }, "friendlyName": { "type": "string", "description": "Friendly name.", "nullable": true }, "address": { "type": "object", "description": "Address information.", "nullable": true, "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } }, "additionalInfo": { "type": "string", "description": "Additional information.", "nullable": true }, "dockId": { "type": "string", "description": "Corresponding dock ID.", "nullable": true } } }, "pickupPointId": { "type": "string", "description": "Pickup point ID.", "nullable": true }, "pickupDistance": { "type": "integer", "description": "Pickup point distance." }, "polygonName": { "type": "string", "description": "Polygon name.", "nullable": true }, "transitTime": { "type": "string", "description": "Transit time. For instance, \"three business days\" is represented `3bd`." } } } }, "shipsTo": { "type": "array", "description": "List of countries that the item may be shipped to.", "items": { "type": "string", "description": "Three letter country code." } }, "itemId": { "type": "string", "description": "Item ID." }, "deliveryChannels": { "type": "array", "description": "List of available delivery channels.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Delivery channel ID." } } } } } } }, "selectedAddresses": { "type": "array", "description": "Array with information on the selected addresses for the order.", "items": { "type": "object", "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } } }, "availableAddresses": { "type": "array", "description": "Array with information on the available addresses for the order.", "items": { "type": "object", "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } } } } }, "clientProfileData": { "type": "object", "nullable": true, "description": "Customer's profile information.", "properties": { "email": { "type": "string", "description": "Email address.", "nullable": true }, "firstName": { "type": "string", "description": "First name.", "nullable": true }, "lastName": { "type": "string", "description": "Last name." }, "documentType": { "type": "string", "description": "Type of the document informed by the customer." }, "document": { "type": "string", "description": "Document informed by the customer." }, "phone": { "type": "string", "description": "Phone number." }, "corporateName": { "type": "string", "description": "Company name, if the customer is a legal entity.", "nullable": true }, "tradeName": { "type": "string", "description": "Trade name, if the customer is a legal entity.", "nullable": true }, "corporateDocument": { "type": "string", "description": "Corporate document, if the customer is a legal entity.", "nullable": true }, "stateInscription": { "type": "string", "description": "State inscription, if the customer is a legal entity.", "nullable": true }, "corporatePhone": { "type": "string", "description": "Corporate phone number, if the customer is a legal entity.", "nullable": true }, "isCorporate": { "type": "boolean", "description": "Indicates whether the customer is a legal entity." }, "profileCompleteOnLoading": { "type": "boolean", "description": "Indicates whether profile is complete on loading." }, "profileErrorOnLoading": { "type": "boolean", "description": "Indicates whether profile presents error on loading.", "nullable": true }, "customerClass": { "type": "string", "description": "Customer class.", "nullable": true } } }, "paymentData": { "type": "object", "description": "Information on the order's payment.", "properties": { "giftCards": { "type": "array", "description": "Gift card information, if it applies to the order.", "items": { "type": "object", "properties": { "redemptionCode": { "type": "string", "description": "Gift card redemption code." }, "value": { "type": "integer", "description": "Gift card value in cents." }, "balance": { "type": "integer", "description": "Gift card balance in cents." }, "name": { "type": "string", "description": "Gift card name." }, "id": { "type": "string", "description": "Gift card ID." }, "inUse": { "type": "boolean", "description": "Indicates whether gift card is in use." }, "isSpecialCard": { "type": "boolean", "description": "Indicates whether gift card is special." } } } }, "transactions": { "type": "array", "description": "Information on each transaction pertinent to the order.", "items": { "type": "object", "properties": { "isActive": { "type": "boolean", "description": "Indicates whether transaction is active." }, "transactionId": { "type": "string", "description": "Transaction ID." }, "merchantName": { "type": "string", "description": "Merchant name." }, "payments": { "type": "array", "description": "Information on each payment.", "items": { "type": "object", "properties": { "accountId": { "type": "string", "description": "Account ID.", "nullable": true }, "bin": { "type": "string", "description": "Bin.", "nullable": true }, "installments": { "type": "integer", "description": "Number of installments." }, "paymentSystem": { "type": "integer", "description": "Payment system." }, "referenceValue": { "type": "integer", "description": "Reference value for calculating interest rates, in case it applies. Displayed in cents." }, "value": { "type": "integer", "description": "Value including interest, in case it applies. Displayed in cents." } } } }, "sharedTransaction": { "type": "boolean", "description": "Indicates whather transaction is shared." } } } } } }, "marketingData": { "type": "object", "description": "Object containing promotion data such as coupon tracking information and internal or external UTMs.", "nullable": true, "properties": { "coupon": { "type": "string", "description": "Sending an existing coupon code in this field will return the corresponding discount in the purchase. Use the [cart simulation](https://developers.vtex.com/vtex-rest-api/reference/orderform#orderformsimulation) request to check which coupons might apply before placing the order.", "example": "free-shipping" }, "utmSource": { "type": "string", "description": "UTM source.", "example": "Facebook" }, "utmMedium": { "type": "string", "description": "UTM medium.", "example": "CPC" }, "utmCampaign": { "type": "string", "description": "UTM campaign", "example": "Black friday" }, "utmiPage": { "type": "string", "description": "utmi_page (internal utm)", "example": "utmi_page-example", "nullable": true }, "utmiPart": { "type": "string", "description": "utmi_part (internal utm).", "example": "utmi_part-example", "nullable": true }, "utmiCampaign": { "type": "string", "description": "utmi_campaign (internal utm).", "example": "utmi_campaign-example", "nullable": true } } }, "sellers": { "type": "array", "description": "Information on each seller.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Seller ID." }, "name": { "type": "string", "description": "Seller name." }, "logo": { "type": "string", "description": "Seller logo.", "nullable": true } } } }, "clientPreferencesData": { "type": "object", "description": "Object containing preferences from the client who placed the order.", "properties": { "locale": { "type": "string", "description": "Client's locale. Examples: `pt-BR` and `en-US`." }, "optinNewsLetter": { "type": "boolean", "description": "`true` if the client opted to receive newsletter from the store.", "example": false, "nullable": true } } }, "commercialConditionData": { "type": "object", "description": "Object containing commercial condition information.", "nullable": true }, "storePreferencesData": { "type": "object", "description": "Object containing data from the store's configuration (stored in VTEX's License Manager)." }, "giftRegistryData": { "type": "object", "description": "Gift registry list information.", "nullable": true }, "openTextField": { "type": "string", "description": "Optional field meant to hold additional information about the order. We recommend using this field for text, not data formats such as `JSON` even if escaped. For that purpose, see [Creating customizable fields](https://developers.vtex.com/vtex-rest-api/docs/creating-customizable-fields-in-the-cart-with-checkout-api-1).", "example": "open-text-example", "nullable": true }, "invoiceData": { "type": "object", "description": "Object containing information pertinent to the order's invoice.", "nullable": true }, "customData": { "type": "object", "description": "Customer additional information.", "nullable": true }, "itemMetadata": { "type": "object", "description": "Item metadata.", "properties": { "items": { "type": "array", "description": "List of objects containing metadata on each item in the order.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Item ID." }, "seller": { "type": "string", "description": "Seller." }, "name": { "type": "string", "description": "Product name." }, "skuName": { "type": "string", "description": "SKU name." }, "productId": { "type": "string", "description": "Product ID." }, "refId": { "type": "string", "description": "Ref ID." }, "ean": { "type": "string", "description": "European Article Number.", "nullable": true }, "imageUrl": { "type": "string", "description": "Image URL." }, "detailUrl": { "type": "string", "description": "Detail URL." } } } } } }, "hooksData": { "type": "object", "description": "Hooks information.", "nullable": true }, "ratesAndBenefitsData": { "type": "object", "description": "Information on rates and benefits that apply to the order.", "properties": { "rateAndBenefitsIdentifiers": { "type": "array", "description": "List with rates and benefits identifiers.", "items": { "type": "string", "description": "Benefit identifier." } }, "teaser": { "type": "array", "description": "List with rates and benefits teasers.", "items": { "type": "string", "description": "Benefit teaser." } } } }, "subscriptionData": { "type": "object", "description": "Subscription information.", "nullable": true }, "itemsOrdination": { "type": "object", "description": "Object containing information about the ordering of items within the orderForm.", "properties": { "criteria": { "type": "string", "description": "Criteria adopted to order the items in the list." }, "ascending": { "type": "boolean", "description": "Indicates whether the ordering is ascending." } } } } } } } } }, "examples": { "response": { "value": { "orderFormId": "ede846222cd44046ba6c638442c3505a", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "profileProvider": "VTEX", "availableAccounts": [], "availableAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", "isDisposable": true, "postalCode": "70386000", "city": "Brasília", "state": "DF", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "userType": "User type", "ignoreProfileData": false, "value": 34390, "messages": [], "items": [ { "uniqueId": "9D6E447B3FF64CEDA33B17C01379C119", "id": "2", "productId": "2", "productRefId": "1", "refId": "CBC30L", "ean": null, "name": "Chopp Brahma Claro 30L", "skuName": "Chopp Brahma Claro 30L", "modalType": null, "parentItemIndex": null, "parentAssemblyBinding": null, "assemblies": [], "priceValidUntil": "2022-07-13T18:30:46Z", "tax": 0, "price": 32890, "listPrice": 49900, "manualPrice": null, "manualPriceAppliedBy": null, "sellingPrice": 32890, "rewardValue": 0, "isGift": false, "additionalInfo": { "dimension": null, "brandName": "Brahma", "brandId": "2000000", "offeringInfo": null, "offeringType": null, "offeringTypeId": null }, "preSaleDate": null, "productCategoryIds": "/1/", "productCategories": { "1": "Bebidas" }, "quantity": 1, "seller": "1", "sellerChain": [ "1" ], "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", "detailUrl": "/chopp-brahma-claro-30l/p", "components": [], "bundleItems": [], "attachments": [], "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "offerings": [], "priceTags": [], "availability": "available", "measurementUnit": "un", "unitMultiplier": 1, "manufacturerCode": null, "priceDefinition": { "calculatedSellingPrice": 32890, "total": 32890, "sellingPrices": [ { "value": 32890, "quantity": 1 } ] } } ], "selectableGifts": [], "totalizers": [ { "id": "Items", "name": "Total Items", "value": 32890 } ], "shippingData": { "address": { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "70386000", "city": "Brasília", "state": "DF", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] }, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "addressId": "teste", "slas": [ { "id": "Normal", "deliveryChannel": "delivery", "name": "Normal", "deliveryIds": [ { "courierId": "1", "warehouseId": "1_1", "dockId": "1", "courierName": "Transportadora", "quantity": 1, "kitItemDetails": [] } ], "shippingEstimate": "3bd", "shippingEstimateDate": null, "lockTTL": "10d", "availableDeliveryWindows": [], "deliveryWindow": null, "price": 1500, "listPrice": 1500, "tax": 0, "pickupStoreInfo": { "isPickupStore": false, "friendlyName": null, "address": null, "additionalInfo": null, "dockId": null }, "pickupPointId": null, "pickupDistance": 0, "polygonName": null, "transitTime": "3bd" } ], "shipsTo": [ "BRA", "COL", "USA" ], "itemId": "2", "deliveryChannels": [ { "id": "delivery" }, { "id": "pickup-in-point" } ] } ], "selectedAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "availableAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "pickupPoints": [] }, "clientProfileData": { "email": "clark.kent@example.com", "firstName": "Clark", "lastName": "Kent", "document": "12345678900", "documentType": "cpf", "phone": "+5521998765432", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "paymentData": { "giftCards": [], "transactions": [ { "isActive": true, "transactionId": "296D6D245C17437E823EB77E403FC88D", "merchantName": "MYSTORE", "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "sharedTransaction": false } ] }, "marketingData": { "coupon": "free-shipping", "utmSource": "app", "utmMedium": "CPC", "utmCampaign": "Black friday", "utmipage": null, "utmiPart": null, "utmiCampaign": null }, "sellers": [ { "id": "1", "name": "lojadobreno", "logo": "Logo" } ], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": false }, "commercialConditionData": null, "storePreferencesData": {}, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "2", "seller": "1", "name": "Chopp Brahma Claro 30L", "skuName": "Chopp Brahma Claro 30L", "productId": "2", "refId": "CBC30L", "ean": null, "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", "detailUrl": "/chopp-brahma-claro-30l/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } } } } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/installments": { "get": { "tags": [ "Shopping cart" ], "summary": "Cart installments", "description": "Retrieves possible amount of installments and respective values for a given cart with a given payment method.\r\n\r\nThe [orderForm](https://developers.vtex.com/docs/guides/orderform-fields) is the data structure which represents a shopping cart and contains all information pertaining to it. Hence, the `orderFormId` is the identification code of a given cart.\n\r\n\rThis endpoint can be used to get the installment options for only one payment method at a time.\n\r\n\rThis endpoint should be called only after the selected `orderForm` already has a `paymentData`.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "GetCartInstallments", "security": [], "parameters": [ { "name": "orderFormId", "in": "path", "required": true, "description": "ID of the `orderForm` to be consulted for installments.", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "name": "paymentSystem", "in": "query", "description": "ID of the payment method to be consulted for installments.", "required": true, "style": "form", "explode": true, "schema": { "type": "integer", "example": 2 } }, { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "example": { "paymentSystem": 2, "bin": null, "paymentName": null, "paymentGroupName": null, "value": 32000, "installments": [ { "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 32000, "total": 32000, "sellerMerchantInstallments": [ { "id": "MyStore", "count": 1, "hasInterestRate": false, "interestRate": 0, "value": 32000, "total": 32000 } ] }, { "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 1600, "total": 32000, "sellerMerchantInstallments": [ { "id": "MyStore", "count": 2, "hasInterestRate": false, "interestRate": 0, "value": 1600, "total": 32000 } ] }, { "count": 3, "hasInterestRate": false, "interestRate": 0, "value": 10666, "total": 32000, "sellerMerchantInstallments": [ { "id": "MyStore", "count": 3, "hasInterestRate": false, "interestRate": 0, "value": 10666, "total": 32000 } ] } ] }, "schema": { "type": "object", "properties": { "bin": { "type": "string", "description": "Bin.", "nullable": true }, "installments": { "type": "array", "description": "Array of installments.", "items": { "description": "Object with installments information.", "type": "object", "properties": { "count": { "description": "An explanation about the purpose of this instance.", "type": "integer" }, "hasInterestRate": { "description": "An explanation about the purpose of this instance.", "type": "boolean" }, "interestRate": { "description": "An explanation about the purpose of this instance.", "type": "integer" }, "value": { "description": "An explanation about the purpose of this instance.", "type": "integer" }, "total": { "description": "An explanation about the purpose of this instance.", "type": "integer" }, "sellerMerchantInstallments": { "description": "An explanation about the purpose of this instance.", "type": "array", "items": { "description": "An explanation about the purpose of this instance.", "type": "object", "properties": { "id": { "description": "Installment ID.", "type": "string" }, "count": { "description": "Count.", "type": "integer" }, "hasInterestRate": { "description": "If the installment has an interest rate.", "type": "boolean" }, "interestRate": { "description": "Interest rate number.", "type": "integer" }, "value": { "description": "Installment value.", "type": "integer" }, "total": { "description": "Installment total.", "type": "integer" } } } } } } }, "paymentSystem": { "type": "integer", "description": "Payment system." }, "value": { "type": "integer", "description": "Value including interest, in case it applies. Displayed in cents." }, "paymentName": { "type": "string", "description": "Payment name.", "nullable": true }, "paymentGroupName": { "type": "string", "description": "Payment group name.", "nullable": true } } } } } } }, "deprecated": false } }, "/api/checkout/pub/orderForm/{orderFormId}/coupons": { "post": { "tags": [ "Shopping cart" ], "summary": "Add coupons to the cart", "description": "Use this request to add coupons to a given shopping cart.\n\r\n\rTo add multiple coupons to the same cart, you need to:\n\r\n\r1. Request the activation of this feature through the [Support VTEX](https://help.vtex.com/support) if this is the first time you perform this action on your store.\n\r2. Submit all coupon codes in the same requisition separated by commas. E.g.: {\"text\": \"freeshipping, discount10, holiday30\"}.\r\n\r\nFor more information on multiple coupons, access the [coupons tutorial](https://help.vtex.com/en/tutorial/creating-a-coupon-beta--7lMk3MmhNp2IEccyGApxU).\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "AddCoupons", "security": [], "parameters": [ { "name": "orderFormId", "in": "path", "required": true, "description": "ID of the orderForm that will receive coupon information.", "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "text": { "type": "string", "description": "Sending an existing coupon code in this field will return the corresponding discount in the purchase.", "example": "freeshipping" } } } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "orderFormId": { "type": "string", "description": "ID of the orderForm corresponding to a specific cart." }, "salesChannel": { "type": "string", "description": "Attribute created by the seller, in their VTEX store configuration." }, "loggedIn": { "type": "boolean", "description": "Indicates whether the user is logged into the store." }, "isCheckedIn": { "type": "boolean", "description": "Indicates whether order is checked in." }, "storeId": { "type": "string", "description": "ID of the store.", "nullable": true }, "allowManualPrice": { "type": "boolean", "description": "Permission to modify item price manually." }, "canEditData": { "type": "boolean", "description": "Data can be edited." }, "userProfileId": { "type": "string", "description": "Unique ID associated with the customer profile." }, "profileProvider": { "type": "string", "description": "Profile provider." }, "availableAccounts": { "type": "array", "description": "Available accounts.", "items": { "type": "string", "description": "Available account." } }, "availableAddresses": { "type": "array", "description": "Information on each available address.", "items": { "type": "object", "properties": { "addressType": { "type": "string", "description": "Address type." }, "receiverName": { "type": "string", "description": "Name of the receiver." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "city": { "type": "string", "description": "City of the address." }, "state": { "type": "string", "description": "State of the address." }, "country": { "type": "string", "description": "Country of the address. ISO three-letter code." }, "street": { "type": "string", "description": "Street of the address." }, "number": { "type": "string", "description": "Number of the address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the address." }, "complement": { "type": "string", "description": "Complement to the address.", "nullable": true }, "reference": { "type": "string", "description": "Reference that may help in the location of the address.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } } }, "userType": { "type": "string", "description": "User type.", "nullable": true }, "ignoreProfileData": { "type": "boolean", "description": "Ignore customer profile data." }, "value": { "type": "integer", "description": "Total value of the order without separating cents. For example, $24.99 is represented `2499`." }, "messages": { "type": "array", "description": "Array containing an object for each message generated by our servers while processing the request.", "items": { "type": "string", "description": "Message." } }, "items": { "type": "array", "description": "Information on each item in the order.", "items": { "type": "object", "properties": { "uniqueId": { "type": "string", "description": "Unique ID." }, "id": { "type": "string", "description": "ID of the item." }, "productId": { "type": "string", "description": "Product ID." }, "productRefId": { "type": "string", "description": "Product Ref ID." }, "refId": { "type": "string", "description": "Ref ID." }, "ean": { "type": "string", "description": "European Article Number.", "nullable": true }, "name": { "type": "string", "description": "Product name." }, "skuName": { "type": "string", "description": "SKU name." }, "modalType": { "type": "string", "description": "Modal type.", "nullable": true }, "parentItemIndex": { "type": "integer", "description": "Parent item index.", "nullable": true }, "parentAssemblyBinding": { "type": "string", "description": "Parent assembly binding.", "nullable": true }, "priceValidUntil": { "type": "string", "description": "Price expiration date and time." }, "tax": { "type": "integer", "description": "Tax value in cents." }, "price": { "type": "integer", "description": "Price in cents." }, "listPrice": { "type": "integer", "description": "List price in cents." }, "manualPrice": { "type": "integer", "description": "Manual price in cents.", "nullable": true }, "manualPriceAppliedBy": { "type": "string", "description": "User that applied the manual price, if that is the case.", "nullable": true }, "sellingPrice": { "type": "integer", "description": "Selling price in cents. Note that this field may be subject to rounding discrepancies. We recommend retrieving data from the `priceDefinition` data structure instead." }, "rewardValue": { "type": "integer", "description": "Reward value in cents." }, "isGift": { "type": "boolean", "description": "Indicates whether item is a gift." }, "additionalInfo": { "type": "object", "description": "Additional information.", "properties": { "dimension": { "type": "string", "description": "Dimension.", "nullable": true }, "brandName": { "type": "string", "description": "Brand name." }, "brandId": { "type": "string", "description": "Brand ID." }, "offeringInfo": { "type": "string", "description": "Offering information.", "nullable": true }, "offeringType": { "type": "string", "description": "Offering type.", "nullable": true }, "offeringTypeId": { "type": "string", "description": "Offering type ID.", "nullable": true } } }, "preSaleDate": { "type": "string", "description": "Presale date.", "nullable": true }, "productCategoryIds": { "type": "string", "description": "Product category IDs." }, "productCategories": { "type": "object", "description": "Object, where each field is an ID from `productCategoryIds`.", "properties": { "{ID}": { "type": "string", "description": "Product category corresponding to the ID in the field key." } } }, "quantity": { "type": "integer", "description": "Quantity." }, "seller": { "type": "string", "description": "Seller." }, "sellerChain": { "type": "array", "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", "items": { "type": "string", "description": "Seller." } }, "imageUrl": { "type": "string", "description": "Image URL." }, "detailUrl": { "type": "string", "description": "Detail URL." }, "bundleItems": { "type": "array", "description": "Information on services sold along with the SKU. Example: a gift package.", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "Service type." }, "id": { "type": "integer", "description": "Service identifier." }, "name": { "type": "string", "description": "Service name." }, "price": { "type": "integer", "description": "Service price in cents." } } } }, "attachments": { "type": "array", "description": "Array containing information on attachments.", "items": { "type": "string", "description": "Attachment information." } }, "priceTags": { "type": "array", "description": "Array of price tags, each of which, modifies the price in some way, like discounts or rates that apply to the item in the context of the order.", "items": { "type": "object", "properties": { "identifier": { "type": "string", "description": "Price tag identifier.", "nullable": true }, "isPercentual": { "type": "boolean", "description": "Indicates whether price tag value is applied through a percentage." }, "name": { "type": "string", "description": "Price tag name." }, "rawValue": { "type": "integer", "description": "Price tag raw value." }, "value": { "type": "integer", "description": "Price tag value." } } } }, "availability": { "type": "string", "description": "Availability" }, "measurementUnit": { "type": "string", "description": "Measurement unit" }, "unitMultiplier": { "type": "integer", "description": "Unit multiplier" }, "manufacturerCode": { "type": "string", "description": "Manufacturer code.", "nullable": true }, "priceDefinition": { "type": "object", "description": "Price information for all units of a specific item.", "properties": { "calculatedSellingPrice": { "type": "integer", "description": "Item's calculated unitary selling price in cents." }, "total": { "type": "integer", "description": "Total value for all units of the item in cents." }, "sellingPrices": { "type": "array", "description": "Array of objects, each containing value (in cents) and quantity for the different rounding instances that can be combined to form the correctly rounded total.", "items": { "type": "object", "properties": { "value": { "type": "integer", "description": "Value in cents for that specific rounding." }, "quantity": { "type": "integer", "description": "Rounding quantity, meaning how many items are rounded to this value." } } } } } } } } }, "selectableGifts": { "type": "array", "description": "Array containing the data of the item selected as a gift.", "items": { "type": "string", "description": "Gift." } }, "totalizers": { "type": "array", "description": "Array containing an object for each totalizer for the purchase. Totalizers contain the sum of values for a specific part of the order (e.g. Total item value, Total shipping value).", "items": { "type": "object", "description": "Totalizer of purchases." } }, "shippingData": { "type": "object", "nullable": true, "description": "Shipping information pertinent to the order.", "properties": { "address": { "type": "object", "description": "Address information.", "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } }, "logisticsInfo": { "type": "array", "description": "Array with logistics information. Each object in this array corresponds to an object in the `items` array, based on the respective `itemIndex`.", "items": { "type": "object", "properties": { "itemIndex": { "type": "integer", "description": "Index corresponding to the position of the object in the `items` array." }, "selectedSla": { "type": "string", "description": "SLA selected by the customer.", "nullable": true }, "selectedDeliveryChannel": { "type": "string", "description": "Delivery channel selected by the customer.", "nullable": true }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "slas": { "type": "array", "description": "Information on available SLAs.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "SLA ID." }, "deliveryChannel": { "type": "string", "description": "Delivery channel." }, "name": { "type": "string", "description": "SLA name." }, "deliveryIds": { "type": "array", "description": "Information on each delivery ID.", "items": { "type": "object", "properties": { "courierId": { "type": "string", "description": "Courier ID." }, "warehouseId": { "type": "string", "description": "Warehouse ID." }, "dockId": { "type": "string", "description": "Warehouse ID." }, "courierName": { "type": "string", "description": "Courier name." }, "quantity": { "type": "integer", "description": "Quantity." } } } }, "shippingEstimate": { "type": "string", "description": "Shipping estimate. For instance, Three business days will be represented `3bd`." }, "shippingEstimateDate": { "type": "string", "description": "When using the query parameter `individualShippingEstimates=true`, it will contain the estimated shipping date (e.g. `2023-09-09T11:29:00+00:00`), otherwise it will contain `null`.", "nullable": true }, "useIndividualShippingEstimates": { "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`.", "type": "boolean" }, "lockTTL": { "type": "string", "description": "Estimate date of delivery.", "nullable": true }, "price": { "type": "integer", "description": "Price in cents." }, "listPrice": { "type": "integer", "description": "List price in cents." }, "tax": { "type": "integer", "description": "Tax in cents." }, "pickupStoreInfo": { "type": "object", "description": "Information on the pickup store.", "properties": { "isPickupStore": { "type": "boolean", "description": "Indicates whether it is the pickup store." }, "friendlyName": { "type": "string", "description": "Friendly name.", "nullable": true }, "address": { "type": "object", "description": "Address information.", "nullable": true, "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } }, "additionalInfo": { "type": "string", "description": "Additional information.", "nullable": true }, "dockId": { "type": "string", "description": "Corresponding dock ID.", "nullable": true } } }, "pickupPointId": { "type": "string", "description": "Pickup point ID.", "nullable": true }, "pickupDistance": { "type": "integer", "description": "Pickup point distance." }, "polygonName": { "type": "string", "description": "Polygon name.", "nullable": true }, "transitTime": { "type": "string", "description": "Transit time. For instance, \"three business days\" is represented `3bd`." } } } }, "shipsTo": { "type": "array", "description": "List of countries that the item may be shipped to.", "items": { "type": "string", "description": "Three letter country code." } }, "itemId": { "type": "string", "description": "Item ID." }, "deliveryChannels": { "type": "array", "description": "List of available delivery channels.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Delivery channel ID." } } } } } } }, "selectedAddresses": { "type": "array", "description": "Array with information on the selected addresses for the order.", "items": { "type": "object", "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } } }, "availableAddresses": { "type": "array", "description": "Array with information on the available addresses for the order.", "items": { "type": "object", "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } } } } }, "clientProfileData": { "type": "object", "description": "Customer's profile information.", "nullable": true, "properties": { "email": { "type": "string", "description": "Email address.", "nullable": true }, "firstName": { "type": "string", "description": "First name.", "nullable": true }, "lastName": { "type": "string", "description": "Last name." }, "documentType": { "type": "string", "description": "Type of the document informed by the customer." }, "document": { "type": "string", "description": "Document informed by the customer." }, "phone": { "type": "string", "description": "Phone number." }, "corporateName": { "type": "string", "description": "Company name, if the customer is a legal entity.", "nullable": true }, "tradeName": { "type": "string", "description": "Trade name, if the customer is a legal entity.", "nullable": true }, "corporateDocument": { "type": "string", "description": "Corporate document, if the customer is a legal entity.", "nullable": true }, "stateInscription": { "type": "string", "description": "State inscription, if the customer is a legal entity.", "nullable": true }, "corporatePhone": { "type": "string", "description": "Corporate phone number, if the customer is a legal entity.", "nullable": true }, "isCorporate": { "type": "boolean", "description": "Indicates whether the customer is a legal entity." }, "profileCompleteOnLoading": { "type": "boolean", "description": "Indicates whether profile is complete on loading." }, "profileErrorOnLoading": { "type": "boolean", "description": "Indicates whether profile presents error on loading.", "nullable": true }, "customerClass": { "type": "string", "description": "Customer class.", "nullable": true } } }, "paymentData": { "type": "object", "description": "Information on the order's payment.", "properties": { "giftCards": { "type": "array", "description": "Gift card information, if it applies to the order.", "items": { "type": "object", "properties": { "redemptionCode": { "type": "string", "description": "Gift card redemption code." }, "value": { "type": "integer", "description": "Gift card value in cents." }, "balance": { "type": "integer", "description": "Gift card balance in cents." }, "name": { "type": "string", "description": "Gift card name." }, "id": { "type": "string", "description": "Gift card ID." }, "inUse": { "type": "boolean", "description": "Indicates whether gift card is in use." }, "isSpecialCard": { "type": "boolean", "description": "Indicates whether gift card is special." } } } }, "transactions": { "type": "array", "description": "Information on each transaction pertinent to the order.", "items": { "type": "object", "properties": { "isActive": { "type": "boolean", "description": "Indicates whether transaction is active." }, "transactionId": { "type": "string", "description": "Transaction ID." }, "merchantName": { "type": "string", "description": "Merchant name." }, "payments": { "type": "array", "description": "Information on each payment.", "items": { "type": "object", "properties": { "accountId": { "type": "string", "description": "Account ID." }, "bin": { "type": "string", "description": "Bin.", "nullable": true }, "installments": { "type": "integer", "description": "Number of installments." }, "paymentSystem": { "type": "integer", "description": "Payment system." }, "referenceValue": { "type": "integer", "description": "Reference value for calculating interest rates, in case it applies. Displayed in cents." }, "value": { "type": "integer", "description": "Value including interest, in case it applies. Displayed in cents." } } } }, "sharedTransaction": { "type": "boolean", "description": "Indicates whather transaction is shared." } } } } } }, "marketingData": { "type": "object", "description": "Object containIng promotion data such as coupon tracking information and internal or external UTMs.", "nullable": true, "properties": { "coupon": { "type": "string", "description": "Sending an existing coupon code in this field will return the corresponding discount in the purchase. Use the [cart simulation](https://developers.vtex.com/vtex-rest-api/reference/orderform#orderformsimulation) request to check which coupons might apply before placing the order.", "example": "free-shipping" }, "utmSource": { "type": "string", "description": "UTM source.", "example": "Facebook", "nullable": true }, "utmMedium": { "type": "string", "description": "UTM medium.", "example": "CPC", "nullable": true }, "utmCampaign": { "type": "string", "description": "UTM campaign.", "example": "Black friday", "nullable": true }, "utmiPage": { "type": "string", "description": "utmi_page (internal utm).", "example": "utmi_page-example", "nullable": true }, "utmiPart": { "type": "string", "description": "utmi_part (internal utm).", "example": "utmi_part-exmaple", "nullable": true }, "utmiCampaign": { "type": "string", "description": "utmi_campaign (internal utm).", "example": "utmi_campaign-exmaple", "nullable": true } } }, "sellers": { "type": "array", "description": "Information on each seller.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Seller ID." }, "name": { "type": "string", "description": "Seller name." }, "logo": { "type": "string", "description": "Seller logo.", "nullable": true } } } }, "clientPreferencesData": { "type": "object", "description": "Object containing preferences from the client who placed the order.", "properties": { "locale": { "type": "string", "description": "Client's locale. Examples: `pt-BR` and `en-US`." }, "optinNewsLetter": { "type": "boolean", "description": "`true` if the client opted to receive newsletter from the store.", "nullable": false } } }, "commercialConditionData": { "type": "object", "description": "Object containing commercial condition information.", "nullable": true }, "storePreferencesData": { "type": "object", "description": "Object containing data from the store's configuration (stored in VTEX's License Manager)." }, "giftRegistryData": { "type": "object", "description": "Gift registry list information.", "nullable": true }, "openTextField": { "type": "string", "description": "Optional field meant to hold additional information about the order. We recommend using this field for text, not data formats such as `JSON` even if escaped. For that purpose, see [Creating customizable fields](https://developers.vtex.com/vtex-rest-api/docs/creating-customizable-fields-in-the-cart-with-checkout-api-1)", "example": "open-text-example", "nullable": true }, "invoiceData": { "type": "object", "description": "Object containing information pertinent to the order's invoice.", "nullable": true }, "customData": { "type": "object", "description": "Customer additional information.", "nullable": true }, "itemMetadata": { "type": "object", "description": "Item metadata.", "properties": { "items": { "type": "array", "description": "List of objects containing metadata on each item in the order.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Item ID." }, "seller": { "type": "string", "description": "Seller." }, "name": { "type": "string", "description": "Product name." }, "skuName": { "type": "string", "description": "SKU name." }, "productId": { "type": "string", "description": "Product ID." }, "refId": { "type": "string", "description": "Ref ID." }, "ean": { "type": "string", "description": "European Article Number.", "nullable": true }, "imageUrl": { "type": "string", "description": "Image URL." }, "detailUrl": { "type": "string", "description": "Detail URL." } } } } } }, "hooksData": { "type": "object", "description": "Hooks information.", "nullable": true }, "ratesAndBenefitsData": { "type": "object", "description": "Information on rates and benefits that apply to the order.", "properties": { "rateAndBenefitsIdentifiers": { "type": "array", "description": "List with rates and benefits identifiers.", "items": { "type": "string", "description": "Benefit identifier." } }, "teaser": { "type": "array", "description": "List with rates and benefits teasers.", "items": { "type": "string", "description": "Benefit teaser." } } } }, "subscriptionData": { "type": "object", "description": "Subscription information.", "nullable": true }, "itemsOrdination": { "type": "object", "description": "Object containing information about the ordering of items within the orderForm.", "properties": { "criteria": { "type": "string", "description": "Criteria adopted to order the items in the list." }, "ascending": { "type": "boolean", "description": "Indicates whether the ordering is ascending." } } } } }, "example": { "orderFormId": "ede846222cd44046ba6c638442c3505a", "salesChannel": "1", "loggedIn": false, "isCheckedIn": false, "storeId": "1", "allowManualPrice": false, "canEditData": true, "userProfileId": "fb542e51-5488-4c34-8d17-ed8fcf597a94", "profileProvider": "VTEX", "availableAccounts": [], "availableAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "666c2e830bd9474ab6f6cc53fb6dd2d2", "isDisposable": true, "postalCode": "70386000", "city": "Brasília", "state": "DF", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "userType": "User type", "ignoreProfileData": false, "value": 34390, "messages": [], "items": [ { "uniqueId": "9D6E447B3FF64CEDA33B17C01379C119", "id": "2", "productId": "2", "productRefId": "1", "refId": "CBC30L", "ean": null, "name": "Chopp Brahma Claro 30L", "skuName": "Chopp Brahma Claro 30L", "modalType": null, "parentItemIndex": null, "parentAssemblyBinding": null, "assemblies": [], "priceValidUntil": "2022-07-13T18:30:46Z", "tax": 0, "price": 32890, "listPrice": 49900, "manualPrice": null, "manualPriceAppliedBy": null, "sellingPrice": 32890, "rewardValue": 0, "isGift": false, "additionalInfo": { "dimension": null, "brandName": "Brahma", "brandId": "2000000", "offeringInfo": null, "offeringType": null, "offeringTypeId": null }, "preSaleDate": null, "productCategoryIds": "/1/", "productCategories": { "1": "Bebidas" }, "quantity": 1, "seller": "1", "sellerChain": [ "1" ], "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", "detailUrl": "/chopp-brahma-claro-30l/p", "components": [], "bundleItems": [], "attachments": [], "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "offerings": [], "priceTags": [], "availability": "available", "measurementUnit": "un", "unitMultiplier": 1, "manufacturerCode": null, "priceDefinition": { "calculatedSellingPrice": 32890, "total": 32890, "sellingPrices": [ { "value": 32890, "quantity": 1 } ] } } ], "selectableGifts": [], "totalizers": [ { "id": "Items", "name": "Total Items", "value": 32890 } ], "shippingData": { "address": { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "70386000", "city": "Brasília", "state": "DF", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] }, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "addressId": "teste", "slas": [ { "id": "Normal", "deliveryChannel": "delivery", "name": "Normal", "deliveryIds": [ { "courierId": "1", "warehouseId": "1_1", "dockId": "1", "courierName": "Transportadora", "quantity": 1, "kitItemDetails": [] } ], "shippingEstimate": "3bd", "shippingEstimateDate": null, "lockTTL": "10d", "availableDeliveryWindows": [], "deliveryWindow": null, "price": 1500, "listPrice": 1500, "tax": 0, "pickupStoreInfo": { "isPickupStore": false, "friendlyName": null, "address": null, "additionalInfo": null, "dockId": null }, "pickupPointId": null, "pickupDistance": 0, "polygonName": null, "transitTime": "3bd" } ], "shipsTo": [ "BRA", "COL", "USA" ], "itemId": "2", "deliveryChannels": [ { "id": "delivery" }, { "id": "pickup-in-point" } ] } ], "selectedAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "availableAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "pickupPoints": [] }, "clientProfileData": { "email": "clark.kent@example.com", "firstName": "Clark", "lastName": "Kent", "document": "12345678900", "documentType": "cpf", "phone": "+5521998765432", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "paymentData": { "giftCards": [], "transactions": [ { "isActive": true, "transactionId": "296D6D245C17437E823EB77E403FC88D", "merchantName": "MYSTORE", "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "sharedTransaction": false } ] }, "marketingData": { "utmSource": null, "utmMedium": null, "utmCampaign": null, "utmipage": null, "utmiPart": null, "utmiCampaign": null, "coupon": "freeshipping", "marketingTags": [] }, "sellers": [ { "id": "1", "name": "lojadobreno", "logo": "Logo" } ], "clientPreferencesData": { "locale": "pt-BR", "optinNewsLetter": false }, "commercialConditionData": null, "storePreferencesData": {}, "giftRegistryData": null, "openTextField": null, "invoiceData": null, "customData": null, "itemMetadata": { "items": [ { "id": "2", "seller": "1", "name": "Chopp Brahma Claro 30L", "skuName": "Chopp Brahma Claro 30L", "productId": "2", "refId": "CBC30L", "ean": null, "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", "detailUrl": "/chopp-brahma-claro-30l/p", "assemblyOptions": [] } ] }, "hooksData": null, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "subscriptionData": null, "itemsOrdination": { "criteria": "NAME", "ascending": true } } } } } }, "deprecated": false } }, "/api/checkout/pub/pickup-points": { "get": { "tags": [ "Fulfillment" ], "summary": "List pickup points by location", "description": "Retrieves information on pickup points close to a given location determined by geocoordinates or postal code.\n\r\n\rThe pickup points returned are not necessarily all active ones. Make sure to validate the information consumed by integrations.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", "operationId": "ListPickupPpointsByLocation", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "geoCoordinates", "in": "query", "description": "Geocoordinates (first longitude, then latitude) around which to search for pickup points. If you use this type of search, do not pass postal and country codes.", "required": false, "style": "form", "schema": { "type": "array", "example": [ -47.924747467041016, -15.832582473754883 ], "items": { "description": "Geocoordinate.", "type": "number", "example": -47.924747467041016 } } }, { "name": "postalCode", "in": "query", "description": "Postal code around which to search for pickup points. If you use this type of search, make sure to pass a `countryCode` and do not pass `geoCoordinates`.", "required": false, "style": "form", "schema": { "type": "string", "example": "1234000" } }, { "name": "countryCode", "in": "query", "description": "Three letter country code refering to the `postalCode` field. Pass the country code only if you are searching pickup points by postal code.", "required": false, "style": "form", "schema": { "type": "string", "example": "BRA" } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "example": { "paging": { "page": 1, "pageSize": 30, "total": 1, "pages": 1 }, "items": [ { "distance": 0.84697865186165456, "pickupPoint": { "friendlyName": "physical-store-02", "address": { "addressType": "pickup", "receiverName": null, "addressId": "physical-store-02", "isDisposable": true, "postalCode": "23450-070", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Praia de Botafogo", "number": "132", "neighborhood": "Botafogo", "complement": "Apto 101", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] }, "additionalInfo": null, "id": "02_Physical", "businessHours": [ { "DayOfWeek": 0, "OpeningTime": "00:00:00", "ClosingTime": "23:59:00" }, { "DayOfWeek": 1, "OpeningTime": "00:00:00", "ClosingTime": "23:59:00" }, { "DayOfWeek": 2, "OpeningTime": "00:00:00", "ClosingTime": "23:59:00" }, { "DayOfWeek": 3, "OpeningTime": "00:00:00", "ClosingTime": "23:59:00" }, { "DayOfWeek": 4, "OpeningTime": "00:00:00", "ClosingTime": "23:50:00" }, { "DayOfWeek": 5, "OpeningTime": "00:00:00", "ClosingTime": "23:59:00" }, { "DayOfWeek": 6, "OpeningTime": "00:00:00", "ClosingTime": "23:59:00" } ] } } ] }, "schema": { "type": "object", "properties": { "paging": { "description": "Paging.", "type": "object", "properties": { "page": { "description": "Page number.", "type": "integer" }, "pageSize": { "description": "Page size.", "type": "integer" }, "total": { "description": "Total pages.", "type": "integer" }, "pages": { "description": "Pages.", "type": "integer" } } }, "items": { "description": "Items.", "type": "array", "items": { "description": "Item information.", "type": "object", "properties": { "distance": { "description": "Distance.", "type": "integer" }, "pickupPoint": { "description": "Pickup point.", "type": "object", "properties": { "friendlyName": { "description": "Friendly name.", "type": "string" }, "address": { "description": "Address.", "type": "object", "properties": { "addressType": { "description": "Address type.", "type": "string" }, "receiverName": { "description": "Receiver name.", "type": "string" }, "addressId": { "description": "Address ID.", "type": "string", "nullable": true }, "isDisposable": { "description": "Is disposable.", "type": "boolean" }, "postalCode": { "description": "Postal code.", "type": "string" }, "city": { "description": "City.", "type": "string" }, "state": { "description": "State.", "type": "string" }, "country": { "description": "Country.", "type": "string" }, "street": { "description": "Street.", "type": "string" }, "number": { "description": "Number.", "type": "string" }, "neighborhood": { "description": "Neighborhood.", "type": "string" }, "complement": { "description": "Complement to the shipping address, in case it applies.", "type": "string", "nullable": true }, "reference": { "description": "Racao.", "type": "string" }, "geoCoordinates": { "description": "Geo coordinates.", "type": "array", "items": { "description": "Geo coordinate.", "type": "integer" } } } }, "additionalInfo": { "description": "Additional info.", "type": "string" }, "id": { "description": "ID.", "type": "string" }, "businessHours": { "description": "Array with business hours.", "type": "array", "items": { "description": "Business hours.", "type": "object", "properties": { "DayOfWeek": { "description": "Day of week.", "type": "integer" }, "OpeningTime": { "description": "Opening time.", "type": "string" }, "ClosingTime": { "description": "Closing time.", "type": "string" } } } } } } } } } } } } } } } } }, "/api/checkout/pub/postal-code/{countryCode}/{postalCode}": { "get": { "tags": [ "Fulfillment" ], "summary": "Get address by postal code", "description": "Retrieves address information for a given postal code and country.\r\n\r\nThis request can be used to implement auto complete functionality when a customer needs to fill in an address.\r\n\r\n## Permissions\r\n\r\nThis endpoint does not require [permissions](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3).", "operationId": "GetAddressByPostalCode", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "countryCode", "in": "path", "description": "Three letter country code refering to the `postalCode` field.", "required": true, "style": "simple", "schema": { "type": "string", "example": "BRA" } }, { "name": "postalCode", "in": "path", "description": "Postal code.", "required": true, "style": "simple", "schema": { "type": "string", "example": "1234000" } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "example": { "postalCode": "12345000", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "My street", "number": "34", "neighborhood": "My neighborhood", "complement": "Apto 101", "reference": "Reference", "geoCoordinates": [] }, "schema": { "description": "Address.", "type": "object", "properties": { "postalCode": { "description": "Postal code.", "type": "string" }, "city": { "description": "City.", "type": "string" }, "state": { "description": "State.", "type": "string" }, "country": { "description": "Country.", "type": "string" }, "street": { "description": "Street.", "type": "string" }, "number": { "description": "Number.", "type": "string" }, "neighborhood": { "description": "Neighborhood.", "type": "string" }, "complement": { "description": "Complement to the shipping address, in case it applies.", "type": "string", "nullable": true }, "reference": { "description": "Reference.", "type": "string" }, "geoCoordinates": { "description": "Geo coordinates.", "type": "array", "items": { "description": "Geo coordinate.", "type": "integer" } } } } } } } } } }, "/api/checkout/pub/orderForm/{orderFormId}/transaction": { "post": { "tags": [ "Order placement" ], "summary": "Place order from an existing cart", "description": "This endpoint places an order from an existing `orderForm` object, meaning an existing cart.\n\r\n\rAfter the creation of an order with this request, you have five minutes to send payment information and then request payment processing.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Read Shopping Cart** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "PlaceOrderFromExistingOrderForm", "security": [], "parameters": [ { "name": "orderFormId", "in": "path", "description": "ID of the `orderForm` corresponding to the cart from which to place the order.", "required": true, "style": "simple", "schema": { "type": "string", "example": "ede846222cd44046ba6c638442c3505a" } }, { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "referenceId", "value", "referenceValue", "interestValue" ], "properties": { "referenceId": { "title": "referenceId", "type": "string", "description": "ID of the `orderForm` corresponding to the cart from which to place the order. This is the same as the `orderFormId` parameter.", "example": "41a22925298a4ddca95318131a25b000" }, "savePersonalData": { "title": "savePersonalData", "type": "boolean", "description": "`true` if the shopper's data provided during checkout should be saved for future reference.", "example": false }, "optinNewsLetter": { "title": "optinNewsLetter", "type": "boolean", "description": "True if the shopper opted to receive the newsletter.", "example": false, "nullable": true }, "value": { "type": "integer", "description": "Total value of the order without separating cents. For example, $24.99 is represented `2499`.", "example": 6800 }, "referenceValue": { "type": "integer", "description": "Reference value of the order for calculating interest if that is the case. Can be equal to the total value and does not separate cents. For example, $24.99 is represented `2499`.", "example": 6800 }, "interestValue": { "type": "integer", "description": "Interest rate to be used in case it applies.", "example": 0 } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/orderForm" }, "example": { "orderForm": null, "transactionData": { "merchantTransactions": [ { "id": "STORE", "transactionId": "62FEDE228E2144649CF67812C4E5ER79", "merchantName": "STORE", "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "value": 15650, "referenceValue": 15650, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ] } ], "receiverUri": "https://store.vtexpayments.com.br/split/v976778amgh/payments", "gatewayCallbackTemplatePath": "/checkout/gatewayCallback/v976778amgh/{messageCode}" }, "orders": [ { "orderId": "v976778amgh-01", "orderGroup": "v976778amgh", "state": "order-created", "isCheckedIn": false, "sellerOrderId": "00-v976778amgh-01", "storeId": "1", "value": 15650, "items": [ { "uniqueId": "0F93E9C4926A4CD97FDD4C2599BDF9DB", "id": "2000016", "productId": "2000002", "refId": "35-Preto", "ean": null, "name": "Produto Seleção SKU - Lista 35 - Preto", "skuName": "35 - Preto", "modalType": null, "priceValidUntil": "2018-02-16T23:42:44.5467295Z", "tax": 0, "price": 15000, "listPrice": 15000, "manualPrice": null, "sellingPrice": 15000, "rewardValue": 1, "isGift": false, "additionalInfo": { "brandName": "Marca Um", "brandId": "1", "offeringInfo": null, "offeringType": null, "offeringTypeId": null }, "preSaleDate": null, "productCategoryIds": "/12/28/", "productCategories": { "28": "Categoria 5-3", "12": "Departamento 5" }, "defaultPicker": null, "handlerSequence": 0, "handling": false, "quantity": 1, "seller": "1", "imageUrl": "http://store.vteximg.com.br/arquivos/ids/168463-55-55/imagem-modo-lista.png", "detailUrl": "/produto-selecao-sku-lista/p", "components": [], "bundleItems": [], "attachments": [], "itemAttachment": { "name": null, "content": {} }, "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "offerings": [], "priceTags": [], "availability": "available", "measurementUnit": "un", "unitMultiplier": 1.0 } ], "sellers": [ { "id": "1", "name": "Store", "logo": "Logo" } ], "totals": [ { "id": "Items", "name": "Total dos Itens", "value": 15000 }, { "id": "Discounts", "name": "Total dos Descontos", "value": 0 }, { "id": "Shipping", "name": "Total do Frete", "value": 650 }, { "id": "Tax", "name": "Total da Taxa", "value": 0 } ], "clientProfileData": { "email": "clark.kent@examplemail.com", "firstName": "Clark", "lastName": "Kent", "document": "12345678900", "documentType": "cpf", "phone": "+5500123456789", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "ratesAndBenefitsData": { "attachmentId": "ratesAndBenefitsData", "rateAndBenefitsIdentifiers": [], "teaser": [] }, "shippingData": { "attachmentId": "shippingData", "address": { "addressType": "residential", "receiverName": "Marcelo", "addressId": "49ad09e5fba8434a8ff1e0faa4b60ceb", "postalCode": "28050987", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [] }, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "slas": [ { "id": "n2_2", "name": "n2_2", "deliveryIds": [ { "courierId": "1de4790", "warehouseId": "1_1", "dockId": "N2", "courierName": "N2_2", "quantity": 1 } ], "shippingEstimate": "6bd", "shippingEstimateDate": null, "lockTTL": "7d", "availableDeliveryWindows": [ { "startDateUtc": "2024-03-27T00:00:00+00:00", "endDateUtc": "2024-03-27T00:00:00+00:00", "price": 0, "lisPrice": 0, "tax": 0 }, { "startDateUtc": "2024-03-28T00:00:00+00:00", "endDateUtc": "2024-03-28T00:00:00+00:00", "price": 0, "lisPrice": 0, "tax": 0 } ], "deliveryWindow": null, "price": 650, "listPrice": 650, "tax": 0, "pickupStoreInfo": { "isPickupStore": false, "friendlyName": null, "address": null, "additionalInfo": null, "dockId": null } }, { "id": "Normal", "name": "Normal", "deliveryIds": [ { "courierId": "2p1t", "warehouseId": "1_1", "dockId": "N2", "courierName": "Post_Test_2", "quantity": 1 } ], "shippingEstimate": "6bd", "shippingEstimateDate": null, "lockTTL": "7d", "availableDeliveryWindows": [], "deliveryWindow": null, "price": 650, "listPrice": 650, "tax": 0, "pickupStoreInfo": { "isPickupStore": false, "friendlyName": null, "address": null, "additionalInfo": null, "dockId": null } }, { "id": "P_T", "name": "P_T", "deliveryIds": [ { "courierId": "1p1t", "warehouseId": "1_1", "dockId": "N2", "courierName": "Post_Teste", "quantity": 1 } ], "shippingEstimate": "6bd", "shippingEstimateDate": null, "lockTTL": "7d", "availableDeliveryWindows": [], "deliveryWindow": null, "price": 1462, "listPrice": 1462, "tax": 0, "pickupStoreInfo": { "isPickupStore": false, "friendlyName": null, "address": null, "additionalInfo": null, "dockId": null } }, { "id": "Econômica", "name": "Econômica", "deliveryIds": [ { "courierId": "2B9C2C7D-7A76-485D-94EF-701D041E448C", "warehouseId": "1_1", "dockId": "1_1_1", "courierName": "Leve 30kg (De: 10000-000 Até: 25999-999) ", "quantity": 1 } ], "shippingEstimate": "20bd", "shippingEstimateDate": null, "lockTTL": "7d", "availableDeliveryWindows": [], "deliveryWindow": null, "price": 2265, "listPrice": 2265, "tax": 0, "pickupStoreInfo": { "isPickupStore": false, "friendlyName": null, "address": null, "additionalInfo": null, "dockId": null } } ], "shipsTo": [ "BRA" ], "itemId": "2000016" } ], "availableAddresses": [ { "addressType": "residential", "receiverName": "Marcelo", "addressId": "49ad09e5fba8434a8ff1e0faa4b60ceb", "postalCode": "28050642", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [] } ] }, "paymentData": { "attachmentId": "paymentData", "transactionId": "62FEDE228E2144649CF67812C4E5DD87", "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "giftCards": [], "transactions": [ { "isActive": true, "transactionId": "62FEDE228E2144649CF67812C4E5DD87", "merchantName": "STORE", "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ] } ], "merchantName": "STORE" }, "clientPreferencesData": { "attachmentId": "clientPreferencesData", "locale": "pt-BR", "optinNewsLetter": true }, "giftRegistryData": null, "marketingData": null, "storePreferencesData": { "countryCode": "BRA", "checkToSavePersonDataByDefault": false, "templateOptions": { "toggleCorporate": false }, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "openTextField": { "attachmentId": "openTextField", "value": null }, "changeData": null, "salesChannel": "1", "followUpEmail": "f1e7309d88dd4633825ce183d52a50a6@ct.vtex.com.br", "creationDate": "2024-02-16T23:42:43.9605088Z", "lastChange": "2024-02-16T23:42:47.62285Z", "timeZoneCreationDate": "2024-02-16T21:42:43.9605088", "timeZoneLastChange": "2024-02-16T21:42:47.62285", "isCompleted": false, "hostName": "ambienteqa", "merchantName": null, "userType": "User type", "roundingError": 0 } ] } } } } }, "deprecated": false } }, "/api/checkout/pub/orders": { "put": { "tags": [ "Order placement" ], "summary": "Place order", "description": "Places order without having any prior cart information. This means all information on items, client, payment and shipping must be sent in the body.\r\n\r\n>⚠️ The authentication of this endpoint is required if you are creating an order with an item that has an attachment that creates a Subscription. For more information, access [Subscriptions API](https://developers.vtex.com/docs/api-reference/subscriptions-api-v3).\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Orders Full Access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "PlaceOrder", "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "sc", "in": "query", "description": "Trade Policy (Sales Channel) identification. This query can be used to create an order for a specific sales channel.", "required": false, "style": "form", "schema": { "type": "integer", "example": 1 } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "items", "clientProfileData", "shippingData", "paymentData" ], "properties": { "items": { "type": "array", "description": "Array of objects containing information on each of the order's items.", "items": { "type": "object", "required": [ "id", "quantity", "seller" ], "properties": { "id": { "type": "string", "description": "The SKU ID.", "example": "123" }, "quantity": { "type": "integer", "format": "int32", "description": "The quantity of items of this specific SKU in the cart to be simulated.", "example": 1 }, "seller": { "type": "string", "description": "The ID of the seller responsible for this SKU. This ID can be found in your VTEX Admin.", "example": "1" }, "commission": { "type": "integer", "description": "Comission.", "example": 10 }, "freightCommission": { "type": "integer", "description": "Freight comission", "example": 10 }, "price": { "type": "integer", "description": "Item price within the context of the order without separating cents. For example, $24.99 is represented `2499`.", "example": 2499 }, "bundleItems": { "type": "array", "description": "Information on services sold along with the SKU. Example: a gift package.", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "Service type.", "example": "type-example" }, "id": { "type": "string", "description": "Service identifier.", "example": "id-example" }, "name": { "type": "string", "description": "Service name.", "example": "name-example" }, "price": { "type": "integer", "description": "Service price. The last two digits are the cents.", "example": 199 } } } }, "itemAttachment": { "type": "object", "description": "Item attachment.", "properties": { "name": { "type": "string", "description": "Attachment name.", "example": "name-example" }, "content": { "type": "string", "description": "Content referring to the customization requested by the customer.", "example": "content-example" } } }, "attachments": { "type": "array", "description": "Array containing information on attachments.", "items": { "type": "string" } }, "priceTags": { "type": "array", "description": "Array of price tags, each of which, modifies the price in some way, like discounts or rates that apply to the item in the context of the order.", "items": { "type": "object", "properties": { "identifier": { "type": "string", "description": "Price tag identifier.", "example": "1234abc-5678b-1234c" }, "isPercentual": { "type": "boolean", "description": "`true` if price tag value is applied through a percentage.", "example": false }, "name": { "type": "string", "description": "Price tag name.", "example": "discount@name-1234abc-5678b-1234c" }, "rawValue": { "type": "integer", "description": "Price tag raw value.", "example": -12 }, "value": { "type": "integer", "description": "Price tag value.", "example": -1200 } } } }, "measurementUnit": { "type": "string", "description": "SKU measurement unit.", "example": "g" }, "unitMultiplier": { "type": "integer", "description": "SKU unit multiplier.", "example": 1 }, "isGift": { "type": "boolean", "description": "Indicates whether the order is a gift.", "example": false } }, "example": { "id": "123456789", "quantity": 1, "seller": "1" } } }, "clientProfileData": { "type": "object", "description": "Customer's profile information. The `email` functions as a customer's ID.\n\r\n\rFor customers already in your database, sending only the email address is enough to register the order to the shopper’s existing account.\n\r\n\r> If the shopper exists in you database but is not logged in, sending other profile information along with the email will cause the platform to fail placing the order. This happens because this action is interpreted as an attempt to edit profile data, which is not possible unless the customer is logged in to the store.", "required": [ "email" ], "nullable": true, "properties": { "email": { "type": "string", "description": "Customer's email address.", "example": "customer@examplemail.com", "nullable": true }, "firstName": { "type": "string", "description": "Customer's first name.", "example": "first-name", "nullable": true }, "lastName": { "type": "string", "description": "Customer's last name.", "example": "last-name" }, "documentType": { "type": "string", "description": "Type of the document informed by the customer.", "example": "cpf" }, "document": { "type": "string", "description": "Document number informed by the customer.", "example": "123456789" }, "phone": { "type": "string", "description": "Customer's phone number.", "example": "+55110988887777" }, "corporateName": { "type": "string", "description": "Company name, if the customer is a legal entity.", "example": "company-name" }, "tradeName": { "type": "string", "description": "Trade name, if the customer is a legal entity.", "example": "trade-name" }, "corporateDocument": { "type": "string", "description": "Corporate document, if the customer is a legal entity.", "example": "12345678000100" }, "stateInscription": { "type": "string", "description": "State inscription, if the customer is a legal entity.", "example": "12345678" }, "corporatePhone": { "type": "string", "description": "Corporate phone number, if the customer is a legal entity.", "example": "+551100988887777" }, "isCorporate": { "type": "boolean", "description": "`true` if the customer is a legal entity.", "example": false } } }, "shippingData": { "type": "object", "description": "Shipping information.", "nullable": true, "properties": { "address": { "type": "object", "description": "Shipping address.\n\r\n\rFor customers already in your data base, it is enough to send this object only with an `addressId`, which you may obtain from a [Cart simulation request](https://developers.vtex.com/vtex-rest-api/reference/shopping-cart#cartsimulation), for example.", "nullable": true, "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`, among others.", "example": "residential" }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order.", "example": "receiver-name" }, "addressId": { "type": "string", "description": "Address ID.", "example": "Home", "nullable": true }, "postalCode": { "type": "string", "description": "Postal Code.", "example": "12345-000" }, "city": { "type": "string", "description": "City of the shipping address.", "example": "Rio de Janeiro" }, "state": { "type": "string", "description": "State of the shipping address.", "example": "Rio de Janeiro" }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address.", "example": "BRA" }, "street": { "type": "string", "description": "Street of the shipping address.", "example": "Praia de Botafogo" }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address.", "example": "300" }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address.", "example": "Botafogo" }, "complement": { "description": "Complement to the shipping address, in case it applies.", "type": "string", "nullable": true, "example": "3rd floor" }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "example": "Grey building" }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "example": [ -47.924747467041016, -15.832582473754883 ], "items": { "type": "number", "example": -47.924747467041016, "description": "Geocoordinates numbers." } } } }, "logisticsInfo": { "type": "array", "description": "Array of objects containing logistics information of each item.", "items": { "type": "object", "required": [ "itemIndex", "selectedSla", "price" ], "properties": { "itemIndex": { "type": "integer", "description": "Index of the item in the `items` array, starting from 0.", "example": 0 }, "selectedSla": { "type": "string", "description": "Selected shipping option.", "example": "Express", "nullable": true }, "selectedDeliveryChannel": { "type": "string", "description": "String with the selected delivery channel. This field supports the following values: \n\n- `delivery`, \n\n- `pickup-in-point`.", "example": "delivery", "nullable": true }, "lockTTL": { "type": "string", "description": "Logistics reservation waiting time.", "example": "8d", "nullable": true }, "shippingEstimate": { "type": "string", "description": "Estimated time until delivery for the item.", "example": "7d" }, "price": { "type": "integer", "description": "Shipping price for the item. Does not account for the whole order's shipping price.", "example": 1099 }, "deliveryWindow": { "type": "object", "description": "In case of scheduled delivery, this object will contain information on the delivery window selected by the shopper.", "properties": { "startDateUtc": { "type": "string", "description": "Delivery window starting day and time in UTC.", "example": "2021-07-13T00:00:00+00:00" }, "endDateUtc": { "type": "string", "description": "Delivery window ending day and time in UTC.", "example": "2021-07-13T23:59:59+00:00" }, "price": { "type": "integer", "description": "Delivery window price.", "example": 0 }, "lisPrice": { "type": "integer", "description": "Delivery window list price.", "example": 0 }, "tax": { "type": "integer", "description": "Delivery window tax.", "example": 0 } } } } } }, "updateStatus": { "type": "string", "description": "Indicate whether this object's information is up to date according to the order's items. An order can not be placed if `\"outdated\"`", "example": "updated" } } }, "paymentData": { "type": "object", "required": [ "payments" ], "description": "Payment infomation.", "properties": { "giftCards": { "type": "array", "description": "Gift card information, if it applies to the order.", "items": { "type": "object", "required": [ "redemptionCode", "value" ], "properties": { "redemptionCode": { "type": "string", "description": "Gift card redemption code.", "example": "HYUO-TEZZ-QFFT-HTFR" }, "value": { "type": "integer", "description": "Gift card value.", "example": 500 }, "balance": { "type": "integer", "description": "Gift card balance.", "example": 500 }, "name": { "type": "string", "description": "Gift card name.", "example": "name-example" }, "id": { "type": "string", "description": "Gift card ID.", "example": "1390324156495k195pmab4rall3di" }, "inUse": { "type": "boolean", "description": "Indicates whether gift card is in use.", "example": true }, "isSpecialCard": { "type": "boolean", "description": "Indicates whether gift card is special.", "example": false } } } }, "giftCardMessages": { "type": "array", "description": "Array of gift card messages.", "items": { "example": "message-example", "description": "Gift card message." } }, "paymentSystems": { "type": "array", "description": "Information on payment systems.", "items": { "type": "object", "description": "Payment system.", "properties": { "id": { "type": "integer", "description": "Payment system ID.", "example": 2 }, "name": { "type": "string", "description": "Payment system name.", "example": "Visa" }, "groupName": { "type": "string", "description": "Payment group name.", "example": "creditCardPaymentGroup" }, "validator": { "type": "object", "description": "Payment system validator.", "properties": { "regex": { "type": "string", "description": "Payment system validator.", "example": "^4" }, "mask": { "type": "string", "description": "Validator mask.", "example": "9999 9999 9999 9999" }, "cardCodeRegex": { "type": "string", "description": "Card code regular expression.", "example": "[^0-9]" }, "cardCodeMask": { "type": "string", "description": "Card code mask.", "example": "999" }, "weights": { "type": "array", "description": "Weights.", "items": { "type": "integer" }, "example": [ 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 ] } } }, "stringId": { "type": "string", "description": "String ID.", "example": "12345abc" }, "template": { "type": "string", "description": "Template.", "example": "creditCardPaymentGroup-template" }, "requiresDocument": { "type": "boolean", "description": "Indicates whether a document is required.", "example": false }, "selected": { "type": "boolean", "description": "Indicates whether this payment system has been selected.", "example": false }, "isCustom": { "type": "boolean", "description": "Indicates whether it is custom.", "example": false }, "description": { "type": "string", "description": "Description.", "example": "description-example" } } } }, "payments": { "type": "array", "description": "Payment information.", "items": { "type": "object", "required": [ "paymentSystem", "referenceValue", "value", "installments" ], "description": "Payment information.", "properties": { "accountId": { "type": "string", "description": "Account ID.", "example": "accountID-example" }, "bin": { "type": "string", "description": "Payment bin.", "example": "2", "nullable": true }, "installments": { "type": "integer", "description": "Number of installments.", "example": 2 }, "paymentSystem": { "type": "integer", "description": "Payment system.", "example": 12 }, "referenceValue": { "type": "integer", "description": "Reference value for calculating interest rates, in case it applies.", "example": 16175 }, "value": { "type": "integer", "description": "Value including interest, in case it applies.", "example": 16175 } } } }, "updateStatus": { "type": "string", "description": "Indicates whether this object's information is up to date according to the order's items. An order can not be placed if `\"outdated\"`.", "example": "updated" } } }, "marketingData": { "type": "object", "description": "Coupon information.", "nullable": true, "properties": { "coupon": { "type": "string", "description": "Sending an existing coupon code in this field will return the corresponding discount in the purchase. Use the [cart simulation](https://developers.vtex.com/vtex-rest-api/reference/orderform#orderformsimulation) request to check which coupons might apply before placing the order.", "example": "free-shipping" }, "utmSource": { "type": "string", "description": "UTM source.", "example": "Facebook" }, "utmMedium": { "type": "string", "description": "UTM medium.", "example": "CPC" }, "utmCampaign": { "type": "string", "description": "UTM campaign", "example": "Black friday" }, "utmiPage": { "type": "string", "description": "utmi_page (internal utm)", "example": "utmi_page-example" }, "utmiPart": { "type": "string", "description": "utmi_part (internal utm)", "example": "utmi_part-exmaple" }, "utmiCampaign": { "type": "string", "description": "utmi_campaign (internal utm)", "example": "utmi_campaign-exmaple" } } }, "openTextField": { "type": "string", "description": "Optional field meant to hold additional information about the order. We recommend using this field for text, not data formats such as `JSON` even if escaped. For that purpose, see [Creating customizable fields](https://developers.vtex.com/vtex-rest-api/docs/creating-customizable-fields-in-the-cart-with-checkout-api-1)", "example": "open-text-example" }, "salesAssociateData": { "type": "object", "description": "Sales Associate information.", "properties": { "salesAssociateId": { "type": "string", "description": "Sales Associate (Seller) identification code. All information should be registered by the merchant. Maximum of 100 characters.", "example": "seller123" } } } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "orderForm": { "type": "string", "description": "This is `null` since this request does not depend on any previously existing orderForm information in the platform.", "nullable": true }, "transactionData": { "type": "object", "description": "Information on each transaction pertinent to the order placed.", "properties": { "merchantTransactions": { "type": "array", "description": "Information on each merchant transaction.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the seller." }, "transactionId": { "type": "string", "description": "ID of the transaction in the platform." }, "merchantName": { "type": "string", "description": "Name of the merchant responsible for the sale." }, "payments": { "type": "array", "description": "Information on each payment pertinent to the transaction.", "items": { "type": "object", "properties": { "paymentSystem": { "type": "integer", "description": "Payment system." }, "bin": { "type": "string", "description": "Payment bin.", "nullable": true }, "accountId": { "type": "string", "description": "Account ID.", "nullable": true }, "tokenId": { "type": "string", "description": "Token ID.", "nullable": true }, "value": { "type": "integer", "description": "Total value to be paid in this payment." }, "referenceValue": { "type": "integer", "description": "Reference value over which interests may be applied." }, "giftCardRedemptionCode": { "type": "string", "description": "Gift card redemption code.", "nullable": true }, "giftCardProvider": { "type": "string", "description": "Gift card provider.", "nullable": true }, "giftCardId": { "type": "string", "description": "Gift card ID.", "nullable": true } } } } } } }, "receiverUri": { "type": "string", "description": "Receiver URI." }, "gatewayCallbackTemplatePath": { "type": "string", "description": "Template of the gateway callback path, which may later be used to send information about the transaction." } } }, "orders": { "type": "array", "description": "Information on each of the orders created.", "items": { "type": "object", "properties": { "orderId": { "type": "string", "description": "ID of the order in the Order Management System (OMS)." }, "orderGroup": { "type": "string", "description": "Order group. Orders that involve different sellers are split into different orders of a same order group." }, "state": { "type": "string", "description": "State.", "nullable": true }, "isCheckedIn": { "type": "boolean", "description": "Indicates whether order is checked in.", "example": false }, "sellerOrderId": { "type": "string", "description": "ID of the order in the seller.", "nullable": true }, "storeId": { "type": "string", "description": "Store ID.", "nullable": true }, "checkedInPickupPointId": { "type": "string", "description": "Checked in pickup point.", "nullable": true }, "value": { "type": "integer", "description": "Value of the order." }, "items": { "type": "array", "description": "Information on each item in the order.", "items": { "type": "object", "properties": { "uniqueId": { "type": "string", "description": "Unique ID." }, "id": { "type": "string", "description": "ID of the item." }, "productId": { "type": "string", "description": "Product ID." }, "productRefId": { "type": "string", "description": "Product Ref ID." }, "refId": { "type": "string", "description": "Ref ID." }, "ean": { "type": "string", "description": "European Article Number.", "nullable": true }, "name": { "type": "string", "description": "Product name." }, "skuName": { "type": "string", "description": "SKU name." }, "modalType": { "type": "string", "description": "Modal type.", "nullable": true }, "parentItemIndex": { "type": "integer", "description": "Parent item index.", "nullable": true }, "parentAssemblyBinding": { "type": "string", "description": "Parent assembly binding.", "nullable": true }, "priceValidUntil": { "type": "string", "description": "Price expiration date and time." }, "tax": { "type": "integer", "description": "Tax value in cents." }, "price": { "type": "integer", "description": "Price in cents." }, "listPrice": { "type": "integer", "description": "List price in cents." }, "manualPrice": { "type": "integer", "description": "Manual price in cents.", "nullable": true }, "manualPriceAppliedBy": { "type": "string", "description": "User that applied the manual price, if that is the case.", "nullable": true }, "sellingPrice": { "type": "integer", "description": "Selling price in cents. Note that this field may be subject to rounding discrepancies. We recommend retrieving data from the `priceDefinition` data structure instead." }, "rewardValue": { "type": "integer", "description": "Reward value in cents." }, "isGift": { "type": "boolean", "description": "Indicates whether item is a gift." }, "additionalInfo": { "type": "object", "description": "Additional information.", "properties": { "dimension": { "type": "string", "description": "Dimension.", "nullable": true }, "brandName": { "type": "string", "description": "Brand name." }, "brandId": { "type": "string", "description": "Brand ID." }, "offeringInfo": { "type": "string", "description": "Offering information.", "nullable": true }, "offeringType": { "type": "string", "description": "Offering type.", "nullable": true }, "offeringTypeId": { "type": "string", "description": "Offering type ID.", "nullable": true } } }, "preSaleDate": { "type": "string", "description": "Presale date.", "nullable": true }, "productCategoryIds": { "type": "string", "description": "Product category IDs." }, "productCategories": { "type": "object", "description": "Object, where each field is an ID from `productCategoryIds`.", "properties": { "{ID}": { "type": "string", "description": "Product category corresponding to the ID in the field key." } } }, "quantity": { "type": "integer", "description": "Quantity." }, "seller": { "type": "string", "description": "Seller." }, "sellerChain": { "type": "array", "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/pt/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", "items": { "type": "string", "description": "Seller." } }, "imageUrl": { "type": "string", "description": "Image URL." }, "detailUrl": { "type": "string", "description": "Detail URL." }, "bundleItems": { "type": "array", "description": "Information on services sold along with the SKU. Example: a gift package.", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "Service type." }, "id": { "type": "integer", "description": "Service identifier." }, "name": { "type": "string", "description": "Service name." }, "price": { "type": "integer", "description": "Service price in cents." } } } }, "attachments": { "type": "array", "description": "Array containing information on attachments.", "items": { "type": "string" } }, "priceTags": { "type": "array", "description": "Array of price tags, each of which, modifies the price in some way, like discounts or rates that apply to the item in the context of the order.", "items": { "type": "object", "properties": { "identifier": { "type": "string", "description": "Price tag identifier.", "nullable": true }, "isPercentual": { "type": "boolean", "description": "Indicates whether price tag value is applied through a percentage." }, "name": { "type": "string", "description": "Price tag name." }, "rawValue": { "type": "integer", "description": "Price tag raw value." }, "value": { "type": "integer", "description": "Price tag value." } } } }, "availability": { "type": "string", "description": "Availability" }, "measurementUnit": { "type": "string", "description": "Measurement unit" }, "unitMultiplier": { "type": "integer", "description": "Unit multiplier" }, "manufacturerCode": { "type": "string", "description": "Manufacturer code.", "nullable": true }, "priceDefinition": { "type": "object", "description": "Price information for all units of a specific item.", "properties": { "calculatedSellingPrice": { "type": "integer", "description": "Item's calculated unitary selling price in cents." }, "total": { "type": "integer", "description": "Total value for all units of the item in cents." }, "sellingPrices": { "type": "array", "description": "Array of objects, each containing value (in cents) and quantity for the different rounding instances that can be combined to form the correctly rounded total.", "items": { "type": "object", "properties": { "value": { "type": "integer", "description": "Value in cents for that specific rounding." }, "quantity": { "type": "integer", "description": "Rounding quantity, meaning how many items are rounded to this value." } } } } } } } } }, "sellers": { "type": "array", "description": "Information on each seller.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Seller ID." }, "name": { "type": "string", "description": "Seller name." }, "logo": { "type": "string", "description": "Seller logo.", "nullable": true } } } }, "totals": { "type": "array", "description": "Information on order totals.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Total ID." }, "name": { "type": "string", "description": "Total name." }, "value": { "type": "integer", "description": "Total value." } } } }, "clientProfileData": { "type": "object", "description": "Customer's profile information.", "nullable": true, "properties": { "email": { "type": "string", "description": "Email address.", "nullable": true }, "firstName": { "type": "string", "description": "First name.", "nullable": true }, "lastName": { "type": "string", "description": "Last name." }, "documentType": { "type": "string", "description": "Type of the document informed by the customer." }, "document": { "type": "string", "description": "Document informed by the customer." }, "phone": { "type": "string", "description": "Phone number." }, "corporateName": { "type": "string", "description": "Company name, if the customer is a legal entity.", "nullable": true }, "tradeName": { "type": "string", "description": "Trade name, if the customer is a legal entity.", "nullable": true }, "corporateDocument": { "type": "string", "description": "Corporate document, if the customer is a legal entity.", "nullable": true }, "stateInscription": { "type": "string", "description": "State inscription, if the customer is a legal entity.", "nullable": true }, "corporatePhone": { "type": "string", "description": "Corporate phone number, if the customer is a legal entity.", "nullable": true }, "isCorporate": { "type": "boolean", "description": "Indicates whether the customer is a legal entity." }, "profileCompleteOnLoading": { "type": "boolean", "description": "Indicates whether profile is complete on loading." }, "profileErrorOnLoading": { "type": "boolean", "description": "Indicates whether profile presents error on loading.", "nullable": true }, "customerClass": { "type": "string", "description": "Customer class.", "nullable": true } } }, "ratesAndBenefitsData": { "type": "object", "description": "Information on rates and benefits that apply to the order.", "properties": { "rateAndBenefitsIdentifiers": { "type": "array", "description": "List with rates and benefits identifiers.", "items": { "type": "string" } }, "teaser": { "type": "array", "description": "List with rates and benefits teasers.", "items": { "type": "string" } } } }, "shippingData": { "type": "object", "description": "Shipping information pertinent to the order.", "properties": { "address": { "type": "object", "description": "Address information.", "nullable": true, "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } }, "logisticsInfo": { "type": "array", "description": "Array with logistics information. Each object in this array corresponds to an object in the `items` array, based on the respective `itemIndex`.", "items": { "type": "object", "properties": { "itemIndex": { "type": "integer", "description": "Index corresponding to the position of the object in the `items` array." }, "selectedSla": { "type": "string", "description": "SLA selected by the customer.", "nullable": true }, "selectedDeliveryChannel": { "type": "string", "description": "Delivery channel selected by the customer. For example, `\"delivery\"` or `\"pickup-in-point\"`.", "nullable": true }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "slas": { "type": "array", "description": "Information on available SLAs.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "SLA ID." }, "deliveryChannel": { "type": "string", "description": "Delivery channel." }, "name": { "type": "string", "description": "SLA name." }, "deliveryIds": { "type": "array", "description": "Information on each delivery ID.", "items": { "type": "object", "properties": { "courierId": { "type": "string", "description": "Courier ID." }, "warehouseId": { "type": "string", "description": "Warehouse ID." }, "dockId": { "type": "string", "description": "Warehouse ID." }, "courierName": { "type": "string", "description": "Courier name." }, "quantity": { "type": "integer", "description": "Quantity." } } } }, "shippingEstimate": { "type": "string", "description": "Shipping estimate. For instance, Three business days will be represented `3bd`." }, "shippingEstimateDate": { "type": "string", "description": "When using the query parameter `individualShippingEstimates=true`, it will contain the estimated shipping date (e.g. `2023-09-09T11:29:00+00:00`), otherwise it will contain `null`.", "nullable": true }, "useIndividualShippingEstimates": { "type": "boolean", "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`." }, "lockTTL": { "type": "string", "description": "Estimate date of delivery.", "nullable": true }, "price": { "type": "integer", "description": "Price in cents." }, "listPrice": { "type": "integer", "description": "List price in cents." }, "tax": { "type": "integer", "description": "Tax in cents." }, "pickupStoreInfo": { "type": "object", "description": "Information on the pickup store.", "properties": { "isPickupStore": { "type": "boolean", "description": "Indicates whether it is the pickup store." }, "friendlyName": { "type": "string", "description": "Friendly name.", "nullable": true }, "address": { "type": "object", "description": "Address information.", "nullable": true, "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } }, "additionalInfo": { "type": "string", "description": "Additional information.", "nullable": true }, "dockId": { "type": "string", "description": "Corresponding dock ID.", "nullable": true } } }, "pickupPointId": { "type": "string", "description": "Pickup point ID.", "nullable": true }, "pickupDistance": { "type": "integer", "description": "Pickup point distance." }, "polygonName": { "type": "string", "description": "Polygon name.", "nullable": true }, "transitTime": { "type": "string", "description": "Transit time. For instance, \"three business days\" is represented `3bd`." } } } }, "shipsTo": { "type": "array", "description": "List of countries that the item may be shipped to.", "items": { "type": "string", "description": "Three letter country code." } }, "itemId": { "type": "string", "description": "Item ID." }, "deliveryChannels": { "type": "array", "description": "List of available delivery channels.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Delivery channel ID." } } } } } } }, "selectedAddresses": { "type": "array", "description": "Array with information on the selected addresses for the order.", "items": { "type": "object", "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "description": "Complement to the shipping address, in case it applies.", "type": "string", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } } }, "availableAddresses": { "type": "array", "description": "Array with information on the available addresses for the order.", "items": { "type": "object", "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "description": "Complement to the shipping address, in case it applies.", "type": "string", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array containing two floats with geocoordinates, first longitude, then latitude.", "items": { "type": "number", "description": "Geocoordinates numbers." } } } } } } }, "paymentData": { "type": "object", "description": "Information on the order's payment.", "properties": { "giftCards": { "type": "array", "description": "Gift card information, if it applies to the order.", "items": { "type": "object", "properties": { "redemptionCode": { "type": "string", "description": "Gift card redemption code." }, "value": { "type": "integer", "description": "Gift card value in cents." }, "balance": { "type": "integer", "description": "Gift card balance in cents." }, "name": { "type": "string", "description": "Gift card name." }, "id": { "type": "string", "description": "Gift card ID." }, "inUse": { "type": "boolean", "description": "Indicates whether gift card is in use." }, "isSpecialCard": { "type": "boolean", "description": "Indicates whether gift card is special." } } } }, "transactions": { "type": "array", "description": "Information on each transaction pertinent to the order.", "items": { "type": "object", "properties": { "isActive": { "type": "boolean", "description": "Indicates whether transaction is active." }, "transactionId": { "type": "string", "description": "Transaction ID." }, "merchantName": { "type": "string", "description": "Merchant name." }, "payments": { "type": "array", "description": "Information on each payment.", "items": { "type": "object", "properties": { "accountId": { "type": "string", "description": "Account ID." }, "bin": { "type": "string", "description": "Bin.", "nullable": true }, "installments": { "type": "integer", "description": "Number of installments." }, "paymentSystem": { "type": "integer", "description": "Payment system." }, "referenceValue": { "type": "integer", "description": "Reference value for calculating interest rates, in case it applies. Displayed in cents." }, "value": { "type": "integer", "description": "Value including interest, in case it applies. Displayed in cents." } } } }, "sharedTransaction": { "type": "boolean", "description": "Indicates whather transaction is shared." } } } } } }, "itemMetadata": { "type": "object", "description": "Item metadata.", "properties": { "items": { "type": "array", "description": "List of objects containing metadata on each item in the order.", "items": { "type": "object", "description": "Item metadata.", "properties": { "id": { "type": "string", "description": "Item ID." }, "seller": { "type": "string", "description": "Seller." }, "name": { "type": "string", "description": "Product name." }, "skuName": { "type": "string", "description": "SKU name." }, "productId": { "type": "string", "description": "Product ID." }, "refId": { "type": "string", "description": "Ref ID." }, "ean": { "type": "string", "description": "European Article Number.", "nullable": true }, "imageUrl": { "type": "string", "description": "Image URL." }, "detailUrl": { "type": "string", "description": "Detail URL." } } } } } }, "salesChannel": { "type": "string", "description": "Sales channel." }, "followUpEmail": { "type": "string", "description": "Follow up email address." }, "creationDate": { "type": "string", "description": "Creation date." }, "lastChange": { "type": "string", "description": "Last change." }, "timeZoneCreationDate": { "type": "string", "description": "Time zone creation date." }, "timeZoneLastChange": { "type": "string", "description": "Time zone last change." }, "isCompleted": { "type": "boolean", "description": "Indicates whether order is completed." }, "hostName": { "type": "string", "description": "Host name." }, "merchantName": { "type": "string", "description": "Merchant name.", "nullable": true }, "userType": { "type": "string", "description": "User type." }, "roundingError": { "type": "integer", "description": "Rounding error." }, "allowEdition": { "type": "boolean", "description": "Indicates whether edition is allowed." }, "allowCancelation": { "type": "boolean", "description": "Indicates whether cancelation is allowed." }, "allowChangeSeller": { "type": "boolean", "description": "Indicates whether seller changing is allowed." }, "isUserDataVisible": { "type": "boolean", "description": "Indicates whether user data is visible." }, "orderFormCreationDate": { "type": "string", "description": "`orderForm` creation date." }, "salesAssociateId": { "type": "string", "description": "Sales Associate (Seller) identification code." } } } } } }, "example": { "orderForm": null, "transactionData": { "merchantTransactions": [ { "id": "MYSTORE", "transactionId": "296D6D245C17437E823EB77E403FC88D", "merchantName": "MYSTORE", "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ] } ], "receiverUri": "https://mystore.vtexpayments.com.br/split/1146512005522/payments", "gatewayCallbackTemplatePath": "/checkout/gatewayCallback/1146512005522/{messageCode}" }, "orders": [ { "orderId": "1146512005522-01", "orderGroup": "1146512005522", "state": null, "isCheckedIn": false, "sellerOrderId": "00-1146512005522-01", "storeId": "1", "checkedInPickupPointId": "21", "value": 34390, "items": [ { "uniqueId": "9D6E447B3FF64CEDA33B17C01379C119", "id": "2", "productId": "2", "productRefId": "1", "refId": "CBC30L", "ean": null, "name": "Chopp Brahma Claro 30L", "skuName": "Chopp Brahma Claro 30L", "modalType": null, "parentItemIndex": null, "parentAssemblyBinding": null, "assemblies": [], "priceValidUntil": "2022-07-13T18:30:46Z", "tax": 0, "price": 32890, "listPrice": 49900, "manualPrice": null, "manualPriceAppliedBy": null, "sellingPrice": 32890, "rewardValue": 0, "isGift": false, "additionalInfo": { "dimension": null, "brandName": "Brahma", "brandId": "2000000", "offeringInfo": null, "offeringType": null, "offeringTypeId": null }, "preSaleDate": null, "productCategoryIds": "/1/", "productCategories": { "1": "Bebidas" }, "quantity": 1, "seller": "1", "sellerChain": [ "1" ], "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", "detailUrl": "/chopp-brahma-claro-30l/p", "components": [], "bundleItems": [], "attachments": [], "attachmentOfferings": [ { "name": "vtex.subscription.weekly", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 7, "Domain": [ "1 week", "2 week", "3 week", "4 week" ] } } }, { "name": "vtex.subscription.daily", "required": false, "schema": { "vtex.subscription.key.frequency": { "MaximumNumberOfCharacters": 5, "Domain": [ "1 day" ] } } } ], "offerings": [], "priceTags": [], "availability": "available", "measurementUnit": "un", "unitMultiplier": 1, "manufacturerCode": null, "priceDefinition": { "calculatedSellingPrice": 32890, "total": 32890, "sellingPrices": [ { "value": 32890, "quantity": 1 } ] } } ], "sellers": [ { "id": "1", "name": "Tracking QA", "logo": "Logo" } ], "totals": [ { "id": "Items", "name": "Total dos Itens", "value": 32890 }, { "id": "Discounts", "name": "Total dos Descontos", "value": 0 }, { "id": "Shipping", "name": "Total do Frete", "value": 1500 }, { "id": "Tax", "name": "Total da Taxa", "value": 0 } ], "clientProfileData": { "email": "clark.kent@example.com", "firstName": "Clark", "lastName": "Kent", "document": "12345678900", "documentType": "cpf", "phone": "+5521998765432", "corporateName": "company-name", "tradeName": "trade-name", "corporateDocument": "12345678000100", "stateInscription": "12345678", "corporatePhone": "551100988887777", "isCorporate": false, "profileCompleteOnLoading": false, "profileErrorOnLoading": false, "customerClass": null }, "ratesAndBenefitsData": { "rateAndBenefitsIdentifiers": [], "teaser": [] }, "shippingData": { "address": { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "70386000", "city": "Brasília", "state": "DF", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] }, "logisticsInfo": [ { "itemIndex": 0, "selectedSla": "Normal", "selectedDeliveryChannel": "delivery", "addressId": "teste", "slas": [ { "id": "Normal", "deliveryChannel": "delivery", "name": "Normal", "deliveryIds": [ { "courierId": "1", "warehouseId": "1_1", "dockId": "1", "courierName": "Transportadora", "quantity": 1, "kitItemDetails": [] } ], "shippingEstimate": "3bd", "shippingEstimateDate": null, "lockTTL": "10d", "availableDeliveryWindows": [], "deliveryWindow": null, "price": 1500, "listPrice": 1500, "tax": 0, "pickupStoreInfo": { "isPickupStore": false, "friendlyName": null, "address": null, "additionalInfo": null, "dockId": null }, "pickupPointId": null, "pickupDistance": 0, "polygonName": null, "transitTime": "3bd" } ], "shipsTo": [ "BRA", "COL", "USA" ], "itemId": "2", "deliveryChannels": [ { "id": "delivery" }, { "id": "pickup-in-point" } ] } ], "selectedAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "availableAddresses": [ { "addressType": "residential", "receiverName": "Clark Kent", "addressId": "teste", "isDisposable": true, "postalCode": "12345000", "city": "Rio de Janeiro", "state": "RJ", "country": "BRA", "street": "Rua da minha casa", "number": "123", "neighborhood": "Copacabana", "complement": "15º andar", "reference": null, "geoCoordinates": [ -47.924747467041016, -15.832582473754883 ] } ], "pickupPoints": [] }, "paymentData": { "giftCards": [], "transactions": [ { "isActive": true, "transactionId": "296D6D245C17437E823EB77E403FC88D", "merchantName": "MYSTORE", "payments": [ { "paymentSystem": 6, "bin": null, "accountId": "12", "tokenId": null, "value": 34390, "referenceValue": 34390, "giftCardRedemptionCode": null, "giftCardProvider": null, "giftCardId": null } ], "sharedTransaction": false } ] }, "clientPreferencesData": null, "commercialConditionData": null, "giftRegistryData": null, "marketingData": null, "storePreferencesData": { "countryCode": "BRA", "saveUserData": false, "timeZone": "E. South America Standard Time", "currencyCode": "BRL", "currencyLocale": 1046, "currencySymbol": "R$", "currencyFormatInfo": { "currencyDecimalDigits": 2, "currencyDecimalSeparator": ",", "currencyGroupSeparator": ".", "currencyGroupSize": 3, "startsWithCurrencySymbol": true } }, "openTextField": { "value": null }, "invoiceData": null, "itemMetadata": { "items": [ { "id": "2", "seller": "1", "name": "Chopp Brahma Claro 30L", "skuName": "Chopp Brahma Claro 30L", "productId": "2", "refId": "CBC30L", "ean": null, "imageUrl": "http://mystore.vteximg.com.br/arquivos/ids/155400-55-55/30l_v2.png?v=637303412106100000", "detailUrl": "/chopp-brahma-claro-30l/p", "assemblyOptions": [] } ] }, "taxData": null, "customData": null, "hooksData": null, "changeData": null, "subscriptionData": null, "salesChannel": "1", "followUpEmail": "6c10d76b5170456d89823b38b7c8f6ac@ct.vtex.com.br", "creationDate": "2021-07-13T18:33:25.3029443Z", "lastChange": "2021-07-13T18:33:27.736557Z", "timeZoneCreationDate": "2021-07-13T15:33:25.3029443", "timeZoneLastChange": "2021-07-13T15:33:27.736557", "isCompleted": false, "hostName": "mystore", "merchantName": null, "userType": "User type", "roundingError": 0, "allowEdition": false, "allowCancellation": false, "isUserDataVisible": true, "allowChangeSeller": false, "orderFormCreationDate": "2021-07-13T18:33:25.1313373Z" } ], "salesAssociateData": { "salesAssociateId": "seller123" } } } } } }, "deprecated": false } }, "/api/checkout/pub/gatewayCallback/{orderGroup}": { "post": { "tags": [ "Order placement" ], "summary": "Process order", "description": "Order processing callback request, which is made after an order's payment is approved.\n\r\n\r> This request has to be made within five minutes after the [Place order](https://developers.vtex.com/docs/api-reference/checkout-api#put-/api/checkout/pub/orders) or [Place order from existing cart](https://developers.vtex.com/docs/api-reference/checkout-api#post-/api/checkout/pub/orderForm/-orderFormId-/transaction) request has been made, or else, the order will not be processed.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Save Order Configuration** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "ProcessOrder", "security": [], "parameters": [ { "name": "orderGroup", "in": "path", "description": "Order group. It is the part of the `orderId` that comes before the `-`. For example, the `orderGroup` of the order `123456789-01` is `123456789`.", "required": true, "style": "simple", "schema": { "type": "string", "example": "123456789" } }, { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "Cookie", "in": "header", "description": "VTEX Chekout cookie associated with a specific order. Use the `Vtex_CHKO_Auth` and the `CheckoutDataAccess` cookies returned by the [Place order](https://developers.vtex.com/vtex-rest-api/reference/order-placement-1#placeorder) or [Place order from existing cart](https://developers.vtex.com/vtex-rest-api/reference/order-placement-1#placeorderfromexistingorderform) API requests, like a browser would.", "required": true, "style": "simple", "schema": { "type": "string", "example": "Vtex_CHKO_Auth=0e/RpYIEZu19BuwXB4tZ7eIGu9HT8vdUAHWQDHDpxMc=; CheckoutDataAccess=0e/PoiTEZu19BuwXB4tZ7eIGu9HT8vdUAHWQDHDpxMc=" } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "responses": { "200": { "description": "OK" }, "428": { "description": "This code is used to indicate that a payment redirection flow is required to complete the order, such as using an [external payment application](https://developers.vtex.com/docs/guides/payments-integration-payment-app).", "content": { "application/json": { "schema": { "type": "object", "properties": { "RedirectResponseCollection": { "type": "array", "description": "Redirect Payment information.", "items": { "type": "object", "properties": { "redirectUrl": { "type": "string", "description": "Redirect URL information." } } } }, "paymentAuthorizationAppCollection": { "type": "array", "description": "Payment authorization information.", "items": { "type": "object", "properties": { "appName": { "type": "string", "description": "Indicates which VTEX IO app that will handle the payment flow at Checkout." }, "appPayload": { "type": "object", "description": "App payload information.", "properties": { "code": { "type": "string", "description": "URL source of external payment flow." }, "expiresAt": { "type": "string", "description": "Payment flow expiration date in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format (`YYYY-MM-DDThh:mm:ss.fff`)." }, "paymentId": { "type": "string", "description": "Payment identifier at VTEX." }, "transactionId": { "type": "string", "description": "Transaction ID." } } } } } } } }, "example": { "RedirectResponseCollection": [ { "redirectUrl": "https://bacen.pix/pix/…" } ], "paymentAuthorizationAppCollection": [ { "appName": "vtex.pix-payment", "appPayload": { "code": "https://bacen.pix/pix/…", "expiresAt": "2023-07-12 14:18:11Z", "paymentId": "7AA33BDE370746839F2F8C5F13FE1D84", "transactionId": "7CEA6AD624D54F07825D37EDEAA746ED" } } ] } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "type": "object", "properties": { "operationId": { "type": "string", "description": "Operation ID." }, "error": { "type": "object", "description": "Information on the error.", "properties": { "code": { "type": "string", "description": "Error code." }, "message": { "type": "string", "description": "Error message." }, "exception": { "type": "string", "description": "Error exception.", "nullable": true } } } } }, "example": { "operationId": "a231ed11-255b-4ea0-96c3-1790e1b27f7e", "error": { "code": "001", "message": "Seu pagamento não foi autorizado. Falha ao enviar os dados de pagamento. Favor entrar em contato com o SAC ou utilizar outra forma de pagamento. *** ", "exception": null } } } } } }, "deprecated": false } }, "/api/checkout/pub/regions/{regionId}": { "get": { "tags": [ "Region" ], "summary": "Get sellers by region or address", "description": "Retrieves a list of sellers that cater to a specific region or address, according to your setup of our [regionalization feature](https://help.vtex.com/en/tutorial/setting-up-price-and-availability-of-skus-by-region--12ne58BmvYsYuGsimmugoc#). Learn more about [Region v2](https://developers.vtex.com/docs/guides/region-v2-release).\n\r\n\rTo access the list of sellers, you must choose one of the following methods:\n\r\n\r1. Send the identification of the list of sellers (`regionId`) as a path parameter through the URL. Or;\n\r2. Send the `country` (3-digit ISO code) and at least one of the two values (`postal Code` or `geo Coordinates`) as query parameters through the URL. For this method, it is also allowed to send both values (`postalCode` or `geoCoordinates`) in the same request.\n\r\n\r> The `regionId` and `country` parameters are indicated as required in this documentation. However, only one of them should be sent in the request according to one of the methods mentioned above.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| --------------- | ----------------- | ----------------- |\r\n| Checkout | CheckoutResources | **Shopping Cart Full Access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "operationId": "GetSellersByRegion", "security": [], "parameters": [ { "$ref": "#/components/parameters/Content-Type" }, { "$ref": "#/components/parameters/Accept" }, { "name": "regionId", "in": "path", "description": "ID of the region corresponding to the shopper's location.", "required": true, "style": "simple", "schema": { "type": "string", "example": "v2.1BB18CE648B5111D0933734ED83EC783" } }, { "name": "country", "in": "query", "description": "Three letter country code refering to the `postalCode` field.", "required": true, "style": "form", "schema": { "type": "string", "example": "BRA" } }, { "name": "postalCode", "in": "query", "description": "Postal code corresponding to the shopper's location.", "required": false, "style": "form", "schema": { "type": "string", "example": "1234000" } }, { "name": "geoCoordinates", "in": "query", "description": "Geocoordinates (first longitude, semicolon, then latitude) corresponding to the shopper's location.", "required": false, "style": "form", "schema": { "type": "array", "example": [ -47.924747467041016, -15.832582473754883 ], "items": { "description": "Geocoordinates.", "type": "number", "example": -47.924747467041016 } } }, { "$ref": "#/components/parameters/individualShippingEstimates" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Region ID." }, "sellers": { "type": "array", "description": "Array with information on each seller retrieved for the given region.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Seller ID." }, "name": { "type": "string", "description": "Seller name." }, "logo": { "type": "string", "description": "Seller logo.", "nullable": true } } } } } }, "example": { "id": "v2.1BB18CE648B5111D0933734ED83EC783", "sellers": [ { "id": "abacaba", "name": "Abacaba Store", "logo": null }, { "id": "abacaba2", "name": "Abacaba VTEX Outlet", "logo": null }, { "id": "abacaba3", "name": "Abacaba VTEX Mall", "logo": null } ] } } } } } } } }, "components": { "schemas": { "orderForm": { "type": "object", "properties": { "orderFormId": { "type": "string", "description": "ID of the orderForm corresponding to a specific cart." }, "salesChannel": { "type": "string", "description": "Attribute created by the seller, in their VTEX store configuration." }, "loggedIn": { "type": "boolean", "description": "Indicates whether the user is logged into the store." }, "isCheckedIn": { "type": "boolean", "description": "Indicates whether order is checked in." }, "storeId": { "type": "string", "description": "ID of the store.", "nullable": true }, "allowManualPrice": { "type": "boolean", "description": "Permission to modify item price manually." }, "canEditData": { "type": "boolean", "description": "Data can be edited." }, "userProfileId": { "type": "string", "description": "Unique ID associated with the customer profile." }, "profileProvider": { "type": "string", "description": "Profile provider." }, "availableAccounts": { "type": "array", "description": "Available accounts.", "items": { "type": "string", "description": "Account." } }, "availableAddresses": { "type": "array", "description": "Information on each available address.", "items": { "type": "object", "properties": { "addressType": { "type": "string", "description": "Address type." }, "receiverName": { "type": "string", "description": "Name of the receiver." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "city": { "type": "string", "description": "City of the address." }, "state": { "type": "string", "description": "State of the address." }, "country": { "type": "string", "description": "Country of the address. ISO three-letter code." }, "street": { "type": "string", "description": "Street of the address." }, "number": { "type": "string", "description": "Number of the address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the address." }, "complement": { "description": "Complement to the shipping address, in case it applies.", "type": "string", "nullable": true }, "reference": { "type": "string", "description": "Reference that may help in the location of the address.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array with two strings that represent geocoordinates: first latitude, then longitude.", "items": { "type": "number", "description": "Geocoordinates." } } } } }, "userType": { "type": "string", "description": "User type.", "nullable": true }, "ignoreProfileData": { "type": "boolean", "description": "Ignore customer profile data." }, "value": { "type": "integer", "description": "Total value of the order without separating cents. For example, $24.99 is represented as `2499`." }, "messages": { "type": "array", "description": "Array containing an object for each message generated by our servers while processing the request.", "items": { "type": "string", "description": "Message." } }, "items": { "type": "array", "description": "Information on each item in the order.", "items": { "type": "object", "properties": { "uniqueId": { "type": "string", "description": "Unique ID." }, "id": { "type": "string", "description": "ID of the item." }, "productId": { "type": "string", "description": "Product ID." }, "productRefId": { "type": "string", "description": "Product Ref ID." }, "refId": { "type": "string", "description": "Ref ID." }, "ean": { "type": "string", "description": "European Article Number.", "nullable": true }, "name": { "type": "string", "description": "Product name." }, "skuName": { "type": "string", "description": "SKU name." }, "modalType": { "type": "string", "description": "Modal type.", "nullable": true }, "parentItemIndex": { "type": "integer", "description": "Parent item index.", "nullable": true }, "parentAssemblyBinding": { "type": "string", "description": "Parent assembly binding.", "nullable": true }, "priceValidUntil": { "type": "string", "description": "Price expiration date and time." }, "tax": { "type": "integer", "description": "Tax value in cents." }, "taxCode": { "type": "string", "description": "A unique identifier code assigned to a tax within the VTEX Admin." }, "price": { "type": "integer", "description": "Price in cents." }, "listPrice": { "type": "integer", "description": "List price in cents." }, "manualPrice": { "type": "integer", "description": "Manual price in cents.", "nullable": true }, "manualPriceAppliedBy": { "type": "string", "description": "User that applied the manual price, if that is the case.", "nullable": true }, "sellingPrice": { "type": "integer", "description": "Selling price in cents. Note that this field may be subject to rounding discrepancies. We recommend retrieving data from the `priceDefinition` data structure instead." }, "rewardValue": { "type": "integer", "description": "Reward value in cents." }, "isGift": { "type": "boolean", "description": "Indicates whether item is a gift." }, "additionalInfo": { "type": "object", "description": "Additional information.", "properties": { "dimension": { "type": "string", "description": "Dimension.", "nullable": true }, "brandName": { "type": "string", "description": "Brand name." }, "brandId": { "type": "string", "description": "Brand ID." }, "offeringInfo": { "type": "string", "description": "Offering information.", "nullable": true }, "offeringType": { "type": "string", "description": "Offering type.", "nullable": true }, "offeringTypeId": { "type": "string", "description": "Offering type ID.", "nullable": true } } }, "preSaleDate": { "type": "string", "description": "Presale date.", "nullable": true }, "productCategoryIds": { "type": "string", "description": "Product category IDs." }, "productCategories": { "type": "object", "description": "Object, where each field is an ID from `productCategoryIds`.", "properties": { "{ID}": { "type": "string", "description": "Product category corresponding to the ID in the field key." } } }, "quantity": { "type": "integer", "description": "Quantity." }, "seller": { "type": "string", "description": "Seller." }, "sellerChain": { "type": "array", "description": "Sellers involved in the chain. The list should contain only one seller, unless it is a [Multilevel Omnichannel Inventory](https://help.vtex.com/en/tutorial/multilevel-omnichannel-inventory--7M1xyCZWUyCB7PcjNtOyw4) order.", "items": { "type": "string", "description": "Seller." } }, "imageUrl": { "type": "string", "description": "Image URL." }, "detailUrl": { "type": "string", "description": "Detail URL." }, "bundleItems": { "type": "array", "description": "Information on services sold along with the SKU. Example: a gift package.", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "Service type." }, "id": { "type": "integer", "description": "Service identifier." }, "name": { "type": "string", "description": "Service name." }, "price": { "type": "integer", "description": "Service price in cents." } } } }, "attachments": { "type": "array", "description": "Array containing information on attachments.", "items": { "type": "string" } }, "priceTags": { "type": "array", "description": "Array of price tags, each of which, modifies the price in some way, like discounts or rates that apply to the item in the context of the order.", "items": { "type": "object", "properties": { "identifier": { "type": "string", "description": "Price tag identifier.", "nullable": true }, "isPercentual": { "type": "boolean", "description": "Indicates whether price tag value is applied through a percentage." }, "name": { "type": "string", "description": "Price tag name." }, "rawValue": { "type": "integer", "description": "Price tag raw value." }, "value": { "type": "integer", "description": "Price tag value." } } } }, "availability": { "type": "string", "description": "Availability." }, "measurementUnit": { "type": "string", "description": "Measurement unit." }, "unitMultiplier": { "type": "integer", "description": "Unit multiplier." }, "manufacturerCode": { "type": "string", "description": "Manufacturer code.", "nullable": true }, "priceDefinition": { "type": "object", "description": "Price information for all units of a specific item.", "properties": { "calculatedSellingPrice": { "type": "integer", "description": "Item's calculated unitary selling price in cents." }, "total": { "type": "integer", "description": "Total value for all units of the item in cents." }, "sellingPrices": { "type": "array", "description": "Array of objects, each containing value (in cents) and quantity for the different rounding instances that can be combined to form the correctly rounded total.", "items": { "type": "object", "properties": { "value": { "type": "integer", "description": "Value in cents for that specific rounding." }, "quantity": { "type": "integer", "description": "Rounding quantity, meaning how many items are rounded to this value." } } } } } } } } }, "selectableGifts": { "type": "array", "description": "Array containing the data of the item selected as a gift.", "items": { "type": "string", "description": "Gift." } }, "totalizers": { "type": "array", "description": "Array containing an object for each totalizer for the purchase. Totalizers contain the sum of values for a specific part of the order (e.g. Total item value, Total shipping value).", "items": { "type": "object", "description": "Totalizer of purchases." } }, "shippingData": { "type": "object", "description": "Shipping information pertinent to the order.", "nullable": true, "properties": { "address": { "type": "object", "description": "Address information.", "nullable": true, "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array with two strings that represent geocoordinates: first latitude, then longitude.", "items": { "type": "number", "description": "Geocoordinates." } } } }, "logisticsInfo": { "type": "array", "description": "Array with logistics information. Each object in this array corresponds to an object in the `items` array, based on the respective `itemIndex`.", "items": { "type": "object", "properties": { "itemIndex": { "type": "integer", "description": "Index corresponding to the position of the object in the `items` array." }, "selectedSla": { "type": "string", "description": "SLA selected by the customer.", "nullable": true }, "selectedDeliveryChannel": { "type": "string", "description": "Delivery channel selected by the customer.", "nullable": true }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "slas": { "type": "array", "description": "Information on available SLAs.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "SLA ID." }, "deliveryChannel": { "type": "string", "description": "Delivery channel." }, "name": { "type": "string", "description": "SLA name." }, "deliveryIds": { "type": "array", "description": "Information on each delivery ID.", "items": { "type": "object", "properties": { "courierId": { "type": "string", "description": "Courier ID." }, "warehouseId": { "type": "string", "description": "Warehouse ID." }, "dockId": { "type": "string", "description": "Warehouse ID." }, "courierName": { "type": "string", "description": "Courier name." }, "quantity": { "type": "integer", "description": "Quantity." } } } }, "attachmentOfferings": { "type": "array", "description": "List of attachments details.", "nullable": true, "items": { "description": "Attachment details.", "type": "object", "required": [ "name", "required", "schema" ], "properties": { "name": { "type": "string", "description": "Name of the attachment.", "nullable": true }, "required": { "type": "boolean", "description": "Defines if the attachment is required (`true`) or not (`false`).", "nullable": true }, "schema": { "type": "object", "description": "Custom values [created into attachment](https://help.vtex.com/en/tutorial/adding-an-attachment--7zHMUpuoQE4cAskqEUWScU).", "nullable": true } } } }, "shippingEstimate": { "type": "string", "description": "Shipping estimate. For instance, \"three business days\" will be represented as `3bd`." }, "shippingEstimateDate": { "type": "string", "description": "When using the query parameter `individualShippingEstimates=true`, it will contain the estimated shipping date (e.g. `2023-09-09T11:29:00+00:00`), otherwise it will contain `null`.", "nullable": true }, "useIndividualShippingEstimates": { "type": "boolean", "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`." }, "lockTTL": { "type": "string", "description": "Estimate date of delivery.", "nullable": true }, "price": { "type": "integer", "description": "Price in cents." }, "listPrice": { "type": "integer", "description": "List price in cents." }, "tax": { "type": "integer", "description": "Tax in cents." }, "pickupStoreInfo": { "type": "object", "description": "Information on the pickup store.", "properties": { "isPickupStore": { "type": "boolean", "description": "Indicates whether it is the pickup store." }, "friendlyName": { "type": "string", "description": "Friendly name.", "nullable": true }, "address": { "type": "object", "description": "Address information.", "nullable": true, "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array with two strings that repesent geocoordinates: first latitude, then longitude.", "items": { "type": "number", "description": "Geocoordinates." } } } }, "additionalInfo": { "type": "string", "description": "Additional information.", "nullable": true }, "dockId": { "type": "string", "description": "Corresponding dock ID.", "nullable": true } } }, "pickupPointId": { "type": "string", "description": "Pickup point ID.", "nullable": true }, "pickupDistance": { "type": "integer", "description": "Pickup point distance." }, "polygonName": { "type": "string", "description": "Polygon name.", "nullable": true }, "transitTime": { "type": "string", "description": "Transit time. For instance, \"three business days\" is represented as `3bd`." } } } }, "shipsTo": { "type": "array", "description": "List of countries that the item may be shipped to.", "items": { "type": "string", "description": "Three letter country code." } }, "itemId": { "type": "string", "description": "Item ID." }, "deliveryChannels": { "type": "array", "description": "List of available delivery channels.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Delivery channel ID." } } } } } } }, "selectedAddresses": { "type": "array", "description": "Array with information on the selected addresses for the order.", "items": { "type": "object", "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array with two strings that represent geocoordinates: first latitude, then longitude.", "items": { "type": "number", "description": "Geocoordinates." } } } } }, "availableAddresses": { "type": "array", "description": "Array with information on the available addresses for the order.", "items": { "type": "object", "properties": { "addressType": { "type": "string", "description": "Type of address. For example, `Residential` or `Pickup`." }, "receiverName": { "type": "string", "description": "Name of the person who is going to receive the order." }, "addressId": { "type": "string", "description": "Address ID.", "nullable": true }, "isDisposable": { "type": "boolean", "description": "Indicates whether address is disposable." }, "postalCode": { "type": "string", "description": "Postal code." }, "city": { "type": "string", "description": "City of the shipping address." }, "state": { "type": "string", "description": "State of the shipping address." }, "country": { "type": "string", "description": "Three letter ISO code of the country of the shipping address." }, "street": { "type": "string", "description": "Street of the shipping address." }, "number": { "type": "string", "description": "Number of the building, house or apartment in the shipping address." }, "neighborhood": { "type": "string", "description": "Neighborhood of the shipping address." }, "complement": { "type": "string", "description": "Complement to the shipping address, in case it applies.", "nullable": true }, "reference": { "type": "string", "description": "Complement that might help locate the shipping address more precisely in case of delivery.", "nullable": true }, "geoCoordinates": { "type": "array", "description": "Array with two strings that represent geocoordinates: first latitude, then longitude.", "items": { "type": "number", "description": "Geocoordinates." } } } } } } }, "clientProfileData": { "type": "object", "description": "Customer's profile information.", "nullable": true, "properties": { "email": { "type": "string", "description": "Email address.", "nullable": true }, "firstName": { "type": "string", "description": "First name.", "nullable": true }, "lastName": { "type": "string", "description": "Last name." }, "documentType": { "type": "string", "description": "Type of the document informed by the customer." }, "document": { "type": "string", "description": "Document informed by the customer." }, "phone": { "type": "string", "description": "Phone number." }, "corporateName": { "type": "string", "description": "Company name, if the customer is a legal entity.", "nullable": true }, "tradeName": { "type": "string", "description": "Trade name, if the customer is a legal entity.", "nullable": true }, "corporateDocument": { "type": "string", "description": "Corporate document, if the customer is a legal entity.", "nullable": true }, "stateInscription": { "type": "string", "description": "State inscription, if the customer is a legal entity.", "nullable": true }, "corporatePhone": { "type": "string", "description": "Corporate phone number, if the customer is a legal entity.", "nullable": true }, "isCorporate": { "type": "boolean", "description": "Indicates whether the customer is a legal entity." }, "profileCompleteOnLoading": { "type": "boolean", "description": "Indicates whether profile is complete on loading." }, "profileErrorOnLoading": { "type": "boolean", "description": "Indicates whether profile presents error on loading.", "nullable": true }, "customerClass": { "type": "string", "description": "Customer class.", "nullable": true } } }, "paymentData": { "type": "object", "description": "Information on the order's payment.", "properties": { "giftCards": { "type": "array", "description": "Gift card information, if it applies to the order.", "items": { "type": "object", "properties": { "redemptionCode": { "type": "string", "description": "Gift card redemption code." }, "value": { "type": "integer", "description": "Gift card value in cents." }, "balance": { "type": "integer", "description": "Gift card balance in cents." }, "name": { "type": "string", "description": "Gift card name." }, "id": { "type": "string", "description": "Gift card ID." }, "inUse": { "type": "boolean", "description": "Indicates whether gift card is in use." }, "isSpecialCard": { "type": "boolean", "description": "Indicates whether gift card is special." } } } }, "transactions": { "type": "array", "description": "Information on each transaction pertinent to the order.", "items": { "type": "object", "properties": { "isActive": { "type": "boolean", "description": "Indicates whether transaction is active." }, "transactionId": { "type": "string", "description": "Transaction ID." }, "merchantName": { "type": "string", "description": "Merchant name." }, "payments": { "type": "array", "description": "Information on each payment.", "items": { "type": "object", "properties": { "accountId": { "type": "string", "description": "Account ID." }, "bin": { "type": "string", "description": "Bin.", "nullable": true }, "installments": { "type": "integer", "description": "Number of installments." }, "paymentSystem": { "type": "string", "description": "Payment system." }, "referenceValue": { "type": "integer", "description": "Reference value for calculating interest rates, in case it applies. Displayed in cents." }, "value": { "type": "integer", "description": "Value including interest, in case it applies. Displayed in cents." } } } }, "sharedTransaction": { "type": "boolean", "description": "Indicates whather transaction is shared." } } } } } }, "marketingData": { "type": "object", "nullable": true, "description": "Object containing promotion data such as coupon tracking information and internal or external UTMs.", "properties": { "coupon": { "type": "string", "description": "Sending an existing coupon code in this field will return the corresponding discount in the purchase. Use the [cart simulation](https://developers.vtex.com/vtex-rest-api/reference/orderform#orderformsimulation) request to check which coupons might apply before placing the order.", "example": "free-shipping" }, "utmSource": { "type": "string", "description": "UTM source.", "example": "Facebook" }, "utmMedium": { "type": "string", "description": "UTM medium.", "example": "CPC" }, "utmCampaign": { "type": "string", "description": "UTM campaign", "example": "Black friday" }, "utmiPage": { "type": "string", "description": "utmi_page (internal utm).", "example": "utmi_page-example", "nullable": true }, "utmiPart": { "type": "string", "description": "utmi_part (internal utm).", "example": "utmi_part-example", "nullable": true }, "utmiCampaign": { "type": "string", "description": "utmi_campaign (internal utm).", "example": "utmi_campaign-example", "nullable": true } } }, "sellers": { "type": "array", "description": "Information on each seller.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Seller ID." }, "name": { "type": "string", "description": "Seller name." }, "logo": { "type": "string", "description": "Seller logo.", "nullable": true } } } }, "clientPreferencesData": { "type": "object", "description": "Object containing preferences from the client who placed the order.", "properties": { "locale": { "type": "string", "description": "Client's locale. Examples: `pt-BR` and `en-US`." }, "optinNewsLetter": { "type": "boolean", "description": "`true` if the client opted to receive newsletter from the store.", "example": false, "nullable": true } } }, "commercialConditionData": { "type": "object", "description": "Object containing commercial condition information.", "nullable": true }, "storePreferencesData": { "type": "object", "description": "Object containing data from the store's configuration (stored in VTEX's License Manager)." }, "giftRegistryData": { "type": "object", "description": "Gift registry list information.", "nullable": true }, "openTextField": { "type": "string", "description": "Optional field meant to hold additional information about the order. We recommend using this field for text, not data formats such as `JSON` even if escaped. For that purpose, see [Creating customizable fields](https://developers.vtex.com/vtex-rest-api/docs/creating-customizable-fields-in-the-cart-with-checkout-api-1).", "example": "open-text-example", "nullable": true }, "invoiceData": { "type": "object", "description": "Object containing information pertinent to the order's invoice.", "nullable": true }, "customData": { "type": "object", "description": "Customer additional information.", "nullable": true }, "itemMetadata": { "type": "object", "description": "Item metadata.", "properties": { "items": { "type": "array", "description": "List of objects containing metadata on each item in the order.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Item ID." }, "seller": { "type": "string", "description": "Seller." }, "name": { "type": "string", "description": "Product name." }, "skuName": { "type": "string", "description": "SKU name." }, "productId": { "type": "string", "description": "Product ID." }, "refId": { "type": "string", "description": "Ref ID." }, "ean": { "type": "string", "description": "European Article Number.", "nullable": true }, "imageUrl": { "type": "string", "description": "Image URL." }, "detailUrl": { "type": "string", "description": "Detail URL." } } } } } }, "hooksData": { "type": "object", "description": "Hooks information.", "nullable": true }, "ratesAndBenefitsData": { "type": "object", "description": "Information on rates and benefits that apply to the order.", "properties": { "rateAndBenefitsIdentifiers": { "type": "array", "description": "List with rates and benefits identifiers.", "items": { "type": "string", "description": "Benefit identifier." } }, "teaser": { "type": "array", "description": "List with rates and benefits teasers.", "items": { "type": "string", "description": "Benefit teaser." } } } }, "subscriptionData": { "type": "object", "description": "Subscription information.", "nullable": true }, "itemsOrdination": { "type": "object", "description": "Object containing information about the ordering of items within the `orderForm`.", "properties": { "criteria": { "type": "string", "description": "Criteria adopted to order the items in the list." }, "ascending": { "type": "boolean", "description": "Indicates whether the ordering is ascending." } } } } }, "OrderFormSimulationRequest": { "required": [ "items", "country" ], "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/Item" }, "description": "Array containing information about the SKUs inside the cart to be simulated." }, "country": { "type": "string" } }, "example": { "items": [ { "id": "{{skuId}}", "quantity": 1, "seller": "1" } ], "country": "{{countryCode-ISO-3-digits}}" } }, "Item": { "title": "Item", "required": [ "id", "quantity", "seller" ], "type": "object", "properties": { "id": { "type": "string", "description": "The SKU ID." }, "quantity": { "type": "integer", "format": "int32", "description": "The quantity of items of this specific SKU in the cart to be simulated." }, "seller": { "type": "string", "description": "The ID of the seller responsible for this SKU. This ID can be found in your VTEX Admin." } }, "example": { "id": "{{skuId}}", "quantity": 1, "seller": "1" } }, "PriceChangeRequest": { "required": [ "price" ], "type": "object", "properties": { "price": { "type": "integer", "format": "int32", "description": "The new price of the item." } }, "example": { "price": 10000 } }, "SetsinglecustomfieldvalueRequest": { "required": [ "value" ], "type": "object", "properties": { "value": { "type": "string", "description": "The value you want to set to the specified field." } } }, "UpdateorderFormconfigurationRequest": { "required": [ "paymentConfiguration", "taxConfiguration", "minimumQuantityAccumulatedForItems", "decimalDigitsPrecision", "minimumValueAccumulated", "apps", "allowMultipleDeliveries", "allowManualPrice" ], "type": "object", "properties": { "paymentConfiguration": { "$ref": "#/components/schemas/PaymentConfiguration" }, "taxConfiguration": { "type": "object", "description": "External tax service configuration.", "nullable": true, "properties": { "url": { "type": "string", "nullable": true, "description": "Endpoint URL." }, "authorizationHeader": { "type": "string", "description": "Authorization header.", "nullable": true }, "appId": { "type": "string", "description": "Custom data ID sent to the tax system.", "example": "12345" }, "isMarketplaceResponsibleForTaxes": { "description": "Indicates whether the marketplace is responsible for the products taxes." } } }, "minimumQuantityAccumulatedForItems": { "type": "integer", "format": "int32", "description": "Minimum SKU quantity by cart." }, "decimalDigitsPrecision": { "type": "integer", "format": "int32", "description": "Number of price digits." }, "minimumValueAccumulated": { "type": "integer", "nullable": true, "description": "Minimum cart value." }, "apps": { "type": "array", "nullable": true, "description": "Array of objects containing Apps configuration information.", "items": { "type": "object", "description": "App configuration information.", "properties": { "id": { "type": "string", "description": "App ID.", "example": "birthdayApp" }, "fields": { "type": "array", "description": "Array of fields available to the app.", "items": { "type": "string", "example": "birthdayField", "description": "Available field." } }, "major": { "type": "integer", "description": "App major version.", "example": 1 } } } }, "allowMultipleDeliveries": { "type": "boolean", "nullable": true, "description": "On the same purchase, allows the selection of items from multiple delivery channels." }, "allowManualPrice": { "type": "boolean", "nullable": true, "description": "Allows the editing of SKU prices right in the cart." }, "maxNumberOfWhiteLabelSellers": { "type": "integer", "description": "Allows the input of a limit of white label sellers involved on the cart." }, "maskFirstPurchaseData": { "type": "boolean", "description": "Allows, on a first purchase, masking client's data. It could be useful when a shared cart is used and the client doesn't want to share its data." }, "maskStateOnAddress": { "type": "boolean", "description": "If the response body is masked, on a first purchase, this flag causes the state (UF) to be masked. The default behavior is to be masked.", "default": true }, "recaptchaValidation": { "type": "string", "nullable": true, "description": "Configures reCAPTCHA validation for the account, defining in which situations the shopper will be prompted to validate a purchase with reCAPTCHA. Learn more about [reCAPTCHA validation for VTEX stores](https:\/\/help.vtex.com\/tutorial\/recaptcha-no-checkout--18Te3oDd7f4qcjKu9jhNzP)\r\n\r\nPossible values are:\r\n\r\n- `\"never\"`: no purchases are validated with reCAPTCHA.\r\n- `null`: no purchases are validated with reCAPTCHA. The same as `never`.\r\n- `\"always\"`: every purchase is validated with reCAPTCHA.\r\n- `\"vtexCriteria\"`: only some purchases are validated with reCAPTCHA in order to minimize friction and improve shopping experience. VTEX\u2019s algorithm determines which sessions are trustworthy and which should be validated with reCAPTCHA. This is the recommended option.", "example": "vtexCriteria" }, "requiresLoginToPlaceOrder": { "type": "boolean", "description": "Indicates whether authentication is required for completing purchases." }, "minimumPurchaseDowntimeSeconds": { "type": "integer", "description": "Minimum interval (in seconds) between successive purchases." }, "cartAgeToUseNewCardSeconds": { "type": "integer", "description": "Minimum cart existence period (in seconds) before allowing the use of a new credit card." }, "paymentSystemToCheckFirstInstallment": { "type": "string", "description": "If you want to apply a first installment discount to a particular payment system, set this field to that payment system's ID. Learn more: [Configuring a discount for orders prepaid in full](https://help.vtex.com/en/tutorial/configurar-desconto-de-preco-a-vista--7Lfcj9Wb5dpYfA2gKkACIt).", "example": "6" } }, "example": { "paymentConfiguration": { "requiresAuthenticationForPreAuthorizedPaymentOption": false }, "taxConfiguration": null, "minimumQuantityAccumulatedForItems": 1, "decimalDigitsPrecision": 2, "minimumValueAccumulated": null, "apps": null, "allowMultipleDeliveries": null, "allowManualPrice": null } }, "PaymentConfiguration": { "title": "PaymentConfiguration", "description": "Payment Configuration object.", "required": [ "requiresAuthenticationForPreAuthorizedPaymentOption" ], "type": "object", "properties": { "requiresAuthenticationForPreAuthorizedPaymentOption": { "type": "boolean", "description": "Determines whether pre-authorized payments require authentication." }, "allowInstallmentsMerge": { "type": "boolean", "description": "By default (when `false`), on a multi-seller purchase is on the run, a simple intersection with installments options configured by every seller will be available. When `true`, this option allows a more complex but flexible installment option, since it considers max installments of every seller configuration, even if those don't match. Installment values ​​may not be equal in this case." }, "blockPaymentSession": { "type": "boolean", "description": "Indicates whether shoppers can add credit cards in your store's `My Account` section." } }, "example": { "requiresAuthenticationForPreAuthorizedPaymentOption": false, "allowInstallmentsMerge": false, "blockPaymentSession": false } }, "WaitingTime": { "type": "object", "description": "Object containing the days after order cancelation by a seller.", "required": [ "waitingTime" ], "properties": { "waitingTime": { "type": "integer", "description": "Number of days after order cancelation by a seller, during which another seller may be assigned to fulfill the order." } } } }, "securitySchemes": { "appKey": { "type": "apiKey", "in": "header", "name": "X-VTEX-API-AppKey", "description": "Unique identifier of the [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys)." }, "appToken": { "type": "apiKey", "in": "header", "name": "X-VTEX-API-AppToken", "description": "Secret token of the [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys)." }, "VtexIdclientAutCookie": { "type": "apiKey", "in": "header", "name": "VtexIdclientAutCookie", "description": "[User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours." } }, "parameters": { "Content-Type": { "name": "Content-Type", "in": "header", "description": "Type of the content being sent.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, "Accept": { "name": "Accept", "in": "header", "description": "HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "required": true, "style": "simple", "schema": { "type": "string", "default": "application/json" } }, "individualShippingEstimates": { "name": "individualShippingEstimates", "in": "query", "description": "Shows the product's estimated shipping date in the `shippingEstimate` field from the `orderForm`.", "required": false, "style": "form", "schema": { "type": "boolean", "example": true } } } }, "tags": [ { "name": "Shopping cart" }, { "name": "Cart attachments" }, { "name": "Custom data" }, { "name": "Configuration" }, { "name": "Fulfillment" }, { "name": "Order placement" }, { "name": "Region" } ], "security": [ { "appKey": [], "appToken": [] }, { "VtexIdclientAutCookie": [] } ] }